C#에서 b를 사용하면 정규식이 작동하지 않습니까?
-
20-09-2019 - |
문제
다음과 같은 반대가 왜 일치하지 않는지 궁금합니다.
string query = "\"1 2\" 3";
string pattern = string.Format(@"\b{0}\b", Regex.Escape("\"1 2\""));
string repl = Regex.Replace(query, pattern, "", RegexOptions.CultureInvariant);
단어 경계 문자 ( b)를 제거하면 pattern
, 그것은 괜찮습니다. ' b'에 대해 이것을 넘어갈 수있는 것이 있습니까?
해결책
인용문은 단어 캐릭터가 아니므로 b가 일치하지 않을 것입니다. 인용하기 전에 단어 캐릭터가 없습니다. 따라서 인용하기 전에 단어 문자와 비 단어 문자 사이에는 전환이 없습니다. 그래서 일치하지 않습니다.
귀하의 의견에서 문자열에서 단어 문자를 제거하려고합니다. 그렇게하는 가장 간단한 방법은 교체하는 것입니다. \w
빈 줄로 :
string repl = Regex.Replace(query, "\w", "", RegexOptions.CultureInvariant);
다른 팁
당신은 공백을 기대하고 있습니다. 하나를 찾지 못합니다. 바꾸다
string query = "\"1 2\" 3";
~와 함께
string query = "\" 1 2 \" 3";
그리고 내가 무슨 뜻인지 알게 될 것입니다.
제휴하지 않습니다 StackOverflow