2013-11-25 4 views
0

저는 C#에서 정규식을 사용하는 초보자입니다.이 형식으로 전화 번호를 확인하는 데 사용하려고합니다. 09oxoxxxxxx 여기서 x는 숫자가 될 수 있고 o는 1-9 일뿐입니다. 총 길이는 11 숫자 여야합니다. 아마 내가 잘못 생각한 부분이 있습니다.특정 형식에 대한 정규식

if (Regex.IsMatch("09203041152", "^[0]{1}[9]{1}[1-9]{2}[1-9]{1}[0-9]{6}")) 
+0

을 언급 한 형식과 일치해야합니까? –

+0

죄송합니다, 지금은 오타되었습니다 –

답변

1

다음 정규식 *이 * 11 *이어야한다 또는 * 11을해야 당신이 '09oxoxxxxxx'

^09[1-9][0-9][1-9][0-9]{6}$ 
+0

고마워요, 매력처럼 작동합니다. –

0

이 시도 :

^09[1-9][0-9][1-9][0-9]{6} 
2

당신은 속기 문자 숫자 [0-9]를 나타냅니다 \d을 사용할 수 있습니다 : 귀하의 재잘 거림으로 인해 반복으로 작동하지 않는

Regex.IsMatch("09203041152", @"^09[1-9]\d[1-9]\d{6}$") 

여기 {2}을 수 :

,363,210

^[0]{1}[9]{1}[1-9] {2} 행 개의 영이 아닌 숫자를 필요 [1-9]{1}[0-9]{6}

.

^[0]{1}[9]{1}[1-9] {1} [0-9] {1}[1-9]{1}[0-9]{6}

:하지만 당신은이 장소에서 하나의 비 - 제로 번호와 하나의 숫자가 필요합니다

주 - 반복 횟수를 {1}과 같이 지정하지 않아도됩니다. 이는 단일 토큰 발생을 의미하기 때문에 명시 적으로 지정하지 않아도 true입니다.

+0

왜 작동하지 설명해 주셔서 감사합니다. 어떤 이유로 응답을 확인했을 때 귀하의 게시물이 없었습니다 : \ up 투표 한 –

+0

아마도 @arashmoeen 브라우저를 새로 고치지 않았을 것입니다 :) –

+1

일부 답변을 추가했다면 OP 코드가 잘못되었음을 설명하지 않았을 것입니다 , +1 :) 때때로 가장 좋은 대답은 받아 들여지는 대답이 아닙니다. –

1

귀하의 정규 표현식은 할 필요가 조금 더 복잡하다 :

^09[1-9][0-9][1-9][0-9]{6}$ 
  • ^ : 시작 -의 라인을 일치시킵니다.
  • 09 : 0 다음에 0과 일치합니다.
  • [1-9] : 19 사이의 모든 숫자와 일치합니다.
  • [0-9] : 09 사이의 모든 숫자와 일치합니다.
  • [1-9] : 다시 19 사이의 모든 숫자와 일치합니다.
  • [0-9]{6} : 09 사이의 숫자 중 6 번 일치합니다.
  • 일치하는 총 자릿수는 11입니다.
+0

미안하지만 우디가 빠르지 만 구조를 설명해주었습니다. 많은 것들을 정리했습니다. 고마워요 –

+0

@arashmoeen 네, 그랬습니다. 걱정 마세요. 천만에요. –

관련 문제