2011-10-11 5 views
0

검색 컨텍스트에서 <matcher>?() 정규 표현식을 사용하면 무엇이 대체됩니까?정규 표현식 검색/좌석 패턴은 어떤 역할을합니까?

string input = "z=""(?<matcher>([a-z]{3,15}))""" 
string pattern = z="cat" 
string replacement = @"<ANIMAL>${matcher}</ANIMAL>"; 
string formattedOutput = Regex.Replace(input, pattern, replacement); 

표현식이 평가 된 후에 formattedOutput은 "cat"이됩니다.

 string pattern = @"z=\""(?<matcher>([a-z]{3,15}))\"""; 
     string input = @"z=""cat"""; 
     string replacement = @"<ANIMAL>${matcher}</ANIMAL>"; 
     string formattedOutput = Regex.Replace(input, pattern, replacement); 

     Console.WriteLine(formattedOutput); 

?<matcher> 단지라는 이름의 그룹입니다 : 당신은 많은 오류가

+0

코드가 컴파일되지 않고 (b) 의미가 없습니다. 투표를 종료합니다. – spender

+1

'input'을'pattern'으로 교체하지 않으시겠습니까? – Amry

답변

2

... 여기

는 보정입니다. 임의의 이름을 선택할 수 있습니다. 예를 들면 다음과 같습니다.

 string pattern = @"z=\""(?<WHATEVER>([a-z]{3,15}))\"""; 
     string input = @"z=""cat"""; 
     string replacement = @"<ANIMAL>${WHATEVER}</ANIMAL>"; 
     string formattedOutput = Regex.Replace(input, pattern, replacement); 

     Console.WriteLine(formattedOutput);