C#의 정규식 구문 이해
C#에서 정규식으로 작업할 때 PHP 또는 JavaScript와 같은 언어에서 흔히 사용되는 슬래시(/
)와 같은 구분 기호를 사용하려고 하면 문제가 발생할 수 있습니다. 이것이 C#에서 작동하지 않는 이유와 정규식을 올바르게 구현하는 방법을 살펴보겠습니다.
다음과 같은 정규식을 사용하려고 하면 문제가 발생합니다(잘못됨).
"name = dr-det-fb.ydp.eu/ebook/trunk/annotations/ctrl.php/api1751-4060-1193-0487\nname = Regex.Replace(name, @"/\W/g", "")"
이 코드는 "/", "-" 및 "."을 제거하려고 시도합니다. 구분 기호를 사용합니다. 그러나 C#에서는 정규식을 다르게 처리합니다. 구분 기호는 필요하지 않으며 실제로 오류가 발생합니다.
C#의 올바른 접근 방식
C#에서 정규식을 정의하려면 @
기호를 사용하여 축자 문자열 리터럴을 만듭니다. 이렇게 하면 C#이 문자열 내의 이스케이프 시퀀스를 해석하지 못합니다. 또한 정규식 자체 내에서 특수 문자를 올바르게 이스케이프 처리해야 합니다.
영숫자가 아닌 문자(W
)를 제거하기 위해 수정된 코드는 다음과 같습니다.
<code class="language-csharp">name = Regex.Replace(name, @"\W", "");</code>
이 한 줄의 코드는 name
문자열에서 영숫자가 아닌 모든 문자를 빈 문자열로 효과적으로 대체하여 구분 기호 없이도 원하는 결과를 얻을 수 있습니다. W
은 영숫자가 아닌 모든 문자와 일치하는 정규식 문자 클래스라는 점을 기억하세요.
위 내용은 C#에서 정규식 구분 기호가 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!