2014-10-09 2 views
-4

정규 표현식으로 문자열의 굵은 부분을 잘라내는 방법?문자열의 정규 표현식

WMQ : // aster-C1.it.google.netEO_B2 @ :? = SOMEQueue1427/QM.0021 큐?

+4

어떤 정규식 도구/언어를 사용하고 있으며 무엇을 시도하셨습니까? – anubhava

+0

무엇을 시도 했습니까? 15 자로 무엇을 의미합니까? –

+0

최소 15자를 써야하며, 다른 방법으로는 메모가 저장되지 않습니다. (wmq : //) 및 "@"다음에 시작하는 방법을 모릅니다. – czupikawo

답변

0

을 사용할 수

var myUrl  = "wmq://[email protected]_B2:1427/QM.0021?queue=SOMEQueue?"; 
var myRegex = new Regex(@"wmq://(.*?)@(.*?)\?queue=(.*?)\?"); 
var myMatches = myRegex.Match(myUrl); 

Debug.Print(myMatches.Groups[1].Value); 
Debug.Print(myMatches.Groups[2].Value); 
Debug.Print(myMatches.Groups[3].Value); 

하지만 당신은 URL의 변화를 그것을 약간 수정해야 할 수도 있습니다.

는 정규식을 설명하는 웹에 적절한 튜토리얼이 있지만 여기에 몇 가지 빠른 정보는 다음과 같습니다

  • 문자열 ""C 번호에 blackslashes을 탈출 할 필요성을 방지하기 전에 @.
  • (괄호)은 캡처 그룹이므로 "()()"은 그룹 [1] 그룹 [2]이됩니다. *.?
  • . *? 아무것도 일치하는 것을 의미하지만 일치하지 않는 최소 일치를 수행합니다.
  • \? 백 슬래시는 특수 문자가 아닌 물음표와 일치한다고 말합니다.
0

당신이 당신이 시작하는해야 Uri

var uri = new Uri(@"wmq://[email protected]_B2:1427/QM.0021?queue=SOMEQueue?"); 

var a = uri.UserInfo; 
var b = uri.Host; 
var c = uri.Port; 
var d = Path.GetFileName(uri.AbsolutePath); 
var e = HttpUtility.ParseQueryString(uri.Query)["queue"]; 
+0

나는이 방법을 사용하지 않는다. 이것은 silverlight 5 app이다. ( – czupikawo

+0

@ user3763161 그것은 중요하지 않다; 당신은 여전히 ​​System.Uri에 접근 할 수 있어야한다. – Casey

관련 문제