2014-02-26 2 views
0

이 코드는 작동하지 않지만 (?:[A-Za-z][A-Za-z0-9_]*)과 같은 다른 식과도 작동합니다. 아래 식C#을 정규식으로 바꿉니다.

는 정규 표현식 테스터에 correctley 작동하지만,이 코드에서 ID로 안녕하세요를 대체하지 않습니다 :

string test = "int Hello := 2 ;"; 
string pattern = "\b(?!int|bool)(?:[A-Za-z][A-Za-z0-9_]*)\b"; 
string replacement = "Id"; 
Regex rgx = new Regex(pattern); 
string newline = rgx.Replace(test, replacement); 

답변

4

당신은 backslashes을 탈출하거나 string@ 시작을 사용하고 그것을 verbatim string를해야한다 . Escape Sequences

string pattern = @"\b(?!int|bool)(?:[A-Za-z][A-Za-z0-9_]*)\b"; 
: \bbackspace입니다 C#에서 특별한 의미를 가지고 문서를 참조하십시오
관련 문제