2013-06-04 4 views
0

페이지 범위와 일치하는 정규 표현식을 쓰고 싶지만 더 복잡합니다! 내가 정규식 쓰기가일치하는 진보 페이지 범위에 대한 정규식에 대해

1-20 : from No.1 page to No.20, 
1-20x2: from No.1 to No.20 and step is 2, so it'll print 10 pages 
1-20a2: from No.1 to No.20, every 2 page printed to 1 paper 
1-20x2a2: 
1-20a2x3: 
1,3-20a2x3, 
1-20a2x3,30-35x2 
1-20x3a2,30-25a2 

:

^([0-9]*|[0-9]*-[1-9][0-9]*(x[1-9][0-9]*)?(a[1-9][0-9]*)?)(,([0-9]*|[0-9]*-[1-9][0-9]*(x[1-9][0-9]*)?(a[1-9][0-9]*)?))*$ 

거의 모든 상황과 일치 할 수 있지만, "X"와 "A"의 순서

나는 다음과 같은 문자열과 일치해야합니다 변경할 수 없습니다.

제발 도와주세요. 고맙습니다 ! 반복 X의의와의를 확인하지 않고

+1

이와 같은 상황에서 가장 좋은 방법은 구성 요소 부분에서 정규 표현식을 작성하는 것입니다. Jeffrey Friedl의 "Mastering Regular Expressions"판 중 하나에서 메일 주소 파서를 살펴보십시오. 나는 그것이 제 2 판에 나타난다라고 생각한다. –

+0

어떤 언어를 사용하십니까? –

답변

1

는 :

(?:(\d+)(,\d+)?-(\d+)([ax]\d+)?([ax]\d+)?)+ 

는 프로그래밍 언어의 도움이 크게이 단순화 수 있다고 생각.