2011-03-02 3 views
0

중간을 변경할 수있는 문자열의 시작과 끝을 일치시키는 데 사용하려고하는 아래 코드가 있습니다. 나는이 예제를 작동 시키려면 먼저이 코드로 에러를 알려주고 전혀 일치하지 않는 이유를 알려 주려고 노력하고있다. 문제의 문자열의 중간 부분이 변경 될 경우Regex가 문자열과 일치하지 않습니다.

 string pattern = @"/\/>[^<]*abc/"; 
     string text = @"<foo/> hello first abc hello second abc <bar/> hello third abc"; 
     Regex r = new Regex(pattern, RegexOptions.IgnoreCase); 
     Match m = r.Match(text); 
+2

캡처하려는거야? 내가 당신의 정규 표현식에서 가져올 확신 모르겠어요. 또한, 필수 [xml/html을 정규식으로 구문 분석하지 마십시오] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) –

+0

새 질문을 즉시 시작하지 마십시오. 귀하의 질문에 이미 답변했습니다. – markijbema

답변

3

당신은 그냥 정규식을 지정 C#에서, 구분 기호가 필요하지 않습니다 :

string pattern = @"\/>[^<]*abc"; 


    string text = @"<foo/> hello first abc hello second abc <bar/> hello third abc"; 


    Regex r = new Regex(pattern, RegexOptions.IgnoreCase); 


    Match m = r.Match(text); 
1

, 왜하지 String.StartsWithString.EndsWith를 사용할 수 있습니까? 예를 들어 :

var myStringPrefix = "prefix"; 
var myStringSuffix = "suffix"; 
var myStringTheChangeling = "prefix random suffix"; 

if (myStringTheChangeling.StartsWith(myStringPrexix) && 
    myStringTheChangeling.EndsWith(myStringSuffix)) 
{ 
    //good to go... 
} 
+0

정규식은^및 $를 사용하지 않으므로 전체 문자열과 일치 할 필요가 없으며 일치 항목이 문자열의 시작과 끝에있을 필요는 없습니다. – markijbema

+0

어쩌면 나는 바보이지만, "중간이 바뀔 수있는 문자열의 시작과 끝을 맞추기 위해 사용하려고합니다."라고 읽습니다. –

관련 문제