>백엔드 개발 >C++ >C#에서 정규식 구분 기호가 작동하지 않는 이유는 무엇입니까?

C#에서 정규식 구분 기호가 작동하지 않는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-22 04:38:10878검색

Why Aren't My Regular Expression Delimiters Working in C#?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.