2014-07-07 10 views
1

Regex (xml이 아님)를 통해이 요소의 값을 얻으려고합니다. 요소에서 Description이라는 단어가 필요합니다.RegEx after after after

value left only containts this 
$Context/Property[Type='WorkItem!System.WorkItem']/Description$ 

string left =valueExpressionLeft.Value.ToString(); 

string fieldname =Regex.Match(left,@"\[Type=\'.*\']/([^<]+)[</]").Value; 
:
string typeString = Regex.Match(valueExpressionLeft.Value.ToString(), "(?<=Type=\')[^\']+").Value; 

<ValueExpressionLeft xmlns="http://Microsoft.EnterpriseManagement.Core.Criteria/"> 
<Property>$Context/Property[Type='WorkItem!System.WorkItem']/Description$</Property> 
</ValueExpressionLeft> 
이 만 입력 한 후 표시되는 내용을 반환

=

는 내가 아무 소용이 아래 kessly의 subbestion을 시도 ]/

후 단어 설명을 얻을 필요

+0

왜를 당신은 정규식을 사용합니까? –

+0

문자열 정규 표현식 내의 요소에 대한 일치는 하위 문자열 – rogue39nin

+0

을 가정 할 때 항상 속도에 대해 제안되므로 설명이 필요한지 어떻게 알 수 있습니까? 그것이 필요한 핵심 포인트는 무엇입니까? 속성 다음 항목? 마지막 부분? 다른 것? – user1676075

답변

0

나는 단지 단어 Description$을 찾고 있다고 가정하니?

그래서 다음과 같은 정규식 당신에게 데이터의 척 가야하는 경우 :

\[Type=\'.*\'\]/([^<]+)[</] 

그룹 : $ 1 Description$

편집 : 당신이 코멘트에 대답하기 위해, 예는 .NET에서 작업을 수행합니다. 다음은 전체 예제입니다하지만 정말 당신은 정규식 문서에 읽어해야합니다

string parseText = "<ValueExpressionLeft xmlns='http://Microsoft.EnterpriseManagement.Core.Criteria/'><Property>$Context/Property[Type='WorkItem!System.WorkItem']/Description$</Property></ValueExpressionLeft>"; 
Match match = Regex.Match(parseText, @"\[Type=\'.*\'\]/([^<]+)[</]"); 
string field = match.Groups[1].Value; 

당신은 다음과 같은 정규 표현식 사용할 수 끝에 $ 제거하려면 다음

\[Type=\'.*\'\]/([^<]+)[\$] 
+0

위의 편집을 참조하십시오 .--(작동하지 않았습니다. – rogue39nin

+0

두 번째 그룹 값 ... 'yourMatch.Groups [1]'을 (를) 사용하여 값을 가져 오십시오. 첫 번째 결과 만보고 두 결과가 있습니다. – Kelsey

+0

.net은 내가 bleieve하지 않는다. – rogue39nin