2014-01-16 2 views
1

문자열이 특정 형식을 따르는 지 확인하기 위해 C#에서 정규식을 작성하려고합니다.정확하게 문자열의 시작과 일치하는 정규식

내가 원하는 형식은 [자리] [공백] [점] 문자를 들면

:

123이 .abc의 형식을 따르는

12345 .DEF

123 ABC의 형식을 따르지 않는 형식을 따라야

나는이 식을 작성하지만,하지 (일반적으로, 줄 바꿈 제외) 모든 문자와 일치 정규식에 completelly 잘

Regex.IsMatch(exampleString, @"^\d+ .") 

답변

6

^ (안된)

^\d+\s+ \..+ 

은 문자열의 시작과 일치, 당신은 바로 그것을 얻었다.

\d+은 하나 이상의 숫자와 일치하며 그 중 하나는 올바르게 표시됩니다.

정규 표현식의 공백은 리터럴 공백과 일치하므로 작동하는 것입니다.

그러나 .은 와일드 카드이며 한 문자와 일치합니다. 문자 그대로의 기간 : \.과 일치 시키려면이 백 슬래시로 이스케이프 처리해야합니다.

지금 글자를 일치 시키려면 기간 만료 후 [a-z]+을 사용할 수 있습니다.

@"^\d+ \.[a-z]+" 
2

dot is a special character 작동합니다. 리터럴 .를 일치 시키려면, 당신은 그것을 탈출해야합니다

Regex.IsMatch(exampleString, @"^\d+ \.") 

당신이 성공 문자에 대한 조건을 포함 할 경우, 사용을 : 당신이 일치하는 당신을 얻기 위해 들어

Regex.IsMatch(exampleString, @"^\d+ \.[A-Za-z]+$") 
0

에 계속 정규식의 마침표는 어떤 문자와도 일치하는 특수 문자이므로 이스케이프 처리해야합니다.

또한 \ s는 공백 문자 (탭, 줄 바꿈)와 일치합니다.

관련 문제