2011-12-26 4 views
0

에서 숫자 또는 아무것도 아무것도하지만, 나는 그것이 아주 기본적인 문제입니다하지만 난 단지 그것을 알아낼 수 없습니다 가정 :정규 표현식 : 모든

는 일치해야합니다 :

A12 
A12.1 
A12.123 

이 일치하지해야 :

A1 
A123 
A13 

내 생각 엔 A12 [^ 0-9] 였지만이 방법은 "A12"와 일치하지 않습니다. A12[^0-9]|A12은 해결책이 될 수 있지만 좀 더 우아한 것을 찾고있었습니다.

+0

'[^ 0-9]'이 문자를 소비하기 때문에'A12'가 첫 번째 시도와 일치하지 않습니다. – fge

답변

1
A12(?!\d) 

요구 사항에 명시된대로 정확하게 충족 일치합니다.

2

정규식에서 예제에서 언급 한 .에 대해서는 절대로 이야기하지 않습니다. 어쨌든, 당신은 다음과 같은 ?를 사용할 수 있습니다

A12(\.\d+)? 
0
A12[^0-9]? 

를? 괄호 안의 부분을 선택적으로 만듭니다.

+0

A123도 일치합니다. – moabit21

1

어떻게 들리는가요? 이 숫자 다음에하지 않는 이상 A12을 일치 :

A12(\.\d+)?$ 

이 A12 및 A12.some_digits

0

해결책이 될 수 있습니다 ... ^A12 (. \ d {0,})?