2011-07-17 4 views
2

에 대해 다른 무언가가 "문자는 '시간'하나 개 이상의 숫자 뒤에"이 H0, H1와 같은, H22정규식, 내가의 패턴에 따라 파일을 찾기 위해 노력하고 IsMatch

그러나 나는 또한 무엇입니까 "H22의 CCO"및

hhh0 방법

files = new List<String>((from file in files where Regex.IsMatch(Path.GetFileNameWithoutExtension(file), "h\\d+", RegexOptions.IgnoreCase | RegexOptions.Singleline) select Path.GetFileNameWithoutExtension(file))); 

감사

+0

내가 찾는 게 좋을 것 의미를 '^'과'$', 일반 C#을 사용하기 위해, 문자열에'@'접두어를 사용합니다. –

답변

3

사용이 시작 라인 또는 문자열 특수 문자 ^ 및말 것을 해결하기, 즉 : ^h+\d+$. 문자열의 시작, 다음 숫자 하나 또는 그 이상의 반복에서 하나 이상의 h을 포함

const string Pattern = @"^h+\d+$"; 

그것은 일치 문자열. 예 : h0, h34, hh5, hhhh789.

처음에 h 하나만 필요한 경우이 정규식을 사용하십시오 : ^h\d+$. 일치 할 것입니다 : h0, h34, h789323.

+0

'hhh0'을 피하기 위해서는'^'도 필요합니다 ... –

+0

@Damien_The_Unbeliever, 이미 업데이트 됨 ;-) –

+0

"h22 cco"가 삭제되었지만 여전히 "hhh01"!! – Costa

0

^ 의미 : 문자열 내의 시작 위치와 일치합니다. 선 기반 도구에서 모든 선의 시작 위치와 일치합니다.

내가 u는이 패턴이 필요 같아요

Regex regexObj = new Regex(@"\bh\d+\b", RegexOptions.Singleline | RegexOptions.IgnoreCase); 

는 "\ B를"단어 경계

관련 문제