2011-10-04 4 views
2

내가 가진 다음 문자열 "USA_NewYork_YYYYMMDD.txt"Regexp. 설정 문자열 길이

내 패턴 YYYYMMDD 길이

은 내가 사용하는 다음 패턴으로 설정한다고

@"^USA_NewYork_+[\d{8}$]+.txt$"

하지만 때문에 또한

USA_NewYork_2011098.txt 
USA_NewYork_201109081.txt 

를 검색하는 다음 파일로도 실패한

내 패턴이 잘못 되었나요?

@"^USA_NewYork_\d{8}\.txt$" 

당신이 지금이 방법은,이 컬렉션 any digit, {에서 다음 USA_NewYork와 하나 이상의 _의 하나 개 이상의 문자를 시작하는 문자열과 일치 :

답변

2

당신은이 패턴을 원하는 (8은 이미 "임의의 숫자"클래스에 있음), } 또는 $, 그 다음 하나의 단일 문자 (줄 바꿈 제외) 및 마지막으로 txt입니다.

[abc]은 "a, b 또는 c"중 하나의 문자를 의미하는 문자 클래스입니다.

basic regex tutorial, 특히 character classes 섹션을 읽어 보시기 바랍니다.

+0

그의 두 번째 예는 8이 아닌 9 자리가 있습니다. –

+0

길이가 8 자 문자열이 필요합니다. 나는 잘못된 예를 보여 주었다. 팀 감사합니다! 공장! – user970742

+0

네, 그리고 그는 그것이 (정확히 7 자리가 아닌) 일치하기를 원하지 않는다고 생각합니다. 정확하게 8 자리를 원합니다. –

0

시도해보십시오. @"^USA_NewYork_+\d{8}\.txt$ 이것은 8 자리 숫자 만 일치시키려는 경우에 효과적입니다.