이 문에는 "잘못된 컴파일 상수 값"이 표시됩니다.잘못된 컴파일 상수 값
Regex objCheckNumber = new Regex("^(\d){4}$");
입력 한 값이 4 자리인지 확인하기 위해 다른 문자열을 확인하기 만하면됩니다.
이 문에는 "잘못된 컴파일 상수 값"이 표시됩니다.잘못된 컴파일 상수 값
Regex objCheckNumber = new Regex("^(\d){4}$");
입력 한 값이 4 자리인지 확인하기 위해 다른 문자열을 확인하기 만하면됩니다.
C 번호는 이스케이프 시퀀스로 \d
를 해석하려고하고 \d
은 하지 유효한 이스케이프 시퀀스 (그러나 \n
및 \t
입니다 :
또는 큰 따옴표 앞에 @ 문자를 배치 예를 들어,). 백 슬래시를 두 번 사용하여 이스케이프 처리하거나 ("^(\\d){4}$"
) 상수 문자열 앞에 at-sign : @"^(\d){4}$"
을 붙일 수 있습니다.
C#은 \를 이스케이프 문자로 사용합니다. \
~ \\
을 두 배로 늘려야합니다.
new Regex(@"^(\d){4}$")
\는 단일 숫자 문자를 의미하는 d를 이스케이프합니다. {4}로 그는 연속으로 4 명을 찾고 있습니다. –
@pasasik - 예, \ d는 정규식 엔진에 특별한 의미가 있지만, 먼저 정규식 엔진에 해당 문자열을 가져와야합니다. 그것을 두 배로 사용하거나 @를 사용하지 않고 C# 컴파일러는 \ d를 \ t 또는 \ n과 같은 '특수'문자로 간주하고 처리하도록 시도합니다. –
RegexHero에서 테스트 중입니다 : http://regexhero.net/tester/ and ... jeesh. 나는 내 실수를 본다. (downvote binarycoder에 대해 유감스럽게도 반전을 허용하지 않을 것입니다.) –
-1 : \ d = C# /. NET 정규식 –
에서 \ d = 단일 숫자로 된 덕분에 완전히 간과 한 것 같습니다. 정규 표현식은 문자열입니다. – PositiveGuy
똥구멍은 psasiks 코멘트를 의미하지 않았다. – PositiveGuy