2012-04-12 6 views
0

URL의 조각에 맞게 :정규식 내가 URL의 같은이

http://127.0.0.1:81/controller/verbOne/NXw4fDF8MXwxfDQ1 소스 = DDDD

또는

http://127.0.0.1:81/controller/verbTwo/NXw4fDF8MXwxfDQ1을

나는 싶습니다 그 부분을 굵게 뽑아 낸다. 호스트와 포트는 무엇이든 변경할 수 있습니다 (라이브 서버에 게시하면 변경됩니다). 컨트롤러가 절대로 변경되지 않습니다. 그리고 동사 부분에는 2 가지 가능성이 있습니다.

누구든지 정규식을 도와 줄 수 있습니까?

Path.GetFileName(new Uri(str).AbsolutePath) 
+0

추신 : 저는 C# .NET을 사용하고 있습니다. – user1005796

답변

3

대신 정규식을 사용하면이 Uri

Uri uri = new Uri("http://127.0.0.1:81/controller/verbOne/NXw4fDF8MXwxfDQ1?source=dddd"); 

var lastSegment = uri.Segments.Last(); 
+0

@ L.B 그가 굵은 체로 부분을 추출하기를 원한다고 생각하는 것처럼 보입니다. - verbOne과 verbTwo는 대담하지 않습니다. (그들이 할 수있는 것의 두 가지 가능성이 있습니다) –

0

당신은 UriPath 클래스를 찾고 당신은 정규식을 찾으십니까? 두 개의 문자열 요소 "verbOne /"또는 "verbTwo /"를 찾고 끝에있는 하위 문자열을 만들 수 있습니다. 그런 다음 나머지 부분을 찾아 ''로 해당 부분을 대체 할 수 있습니다.

나는 이것이 정규식보다 빠르다고 생각한다.

krikit

0

왜의 기능 내장 사용할 수 있습니다 사용 :

감사

0

다른 여기 모든 사람이 파서는 이미 인해 자신의 전문화에 실패해서는 안 존재할 때 실패 할 수 있기 때문에 정규 표현식이 최선의 해결책이 아니라고 정확하지만, 난 당신이 다음과 같은 정규 표현식을 사용할 수 있습니다 생각 :

(?<=http://127\.0\.0\.1:81/controller/verb(One|Two)/)[a-zA-Z0-9]* 
관련 문제