2010-04-26 11 views
3

문자열이 문자, 숫자 또는 밑줄 뒤에 오는 문자로 시작하는지 확인하는 정규식이 필요합니다. 내 EditPadPro regex 파서에 따르면 다음 테스트가 통과해야합니다. 그러나 그렇지 않습니다.왜이 Regex는 .NET에서 작동하지 않습니까?

Regex.IsMatch("Class1_1", @"^\w[\w|\d|_]*$").ShouldBeTrue(); 

무엇이 누락 되었습니까?

+0

이것은 'a | b'와 일치합니다. – SLaks

+0

모두를 괴롭히지 마십시오. 나는 실수가 있었지만 \ w에 숫자와 밑줄이 포함되어 있는지 모른다. –

답변

5

당신의 정규식이 작동하지만 생각대로 작동하지 않습니다.

당신은 사용해야

Regex.IsMatch("Class1_1", @"^[A-Za-z]\w*$") 

w \

+0

"^ \ w [\ w \ d _] * $", 그러나 David M이 지적했듯이 \ w에는 \ d가 포함되어있다. _ 어쨌든, 실제로 "^ [a-zA-Z] \ w + $" – Zarigani

3

은 \ D 포함하고 밑줄 (테스트) - 테스트를 통과하더라도 정규식은 당신이 원하는 무엇을 테스트하지 않습니다!

+0

Regex.IsMatch ("Class1_1", @ "^ \ w + $")는 작동하지 않습니다. 그 이유에 대한 의견이 있으십니까? –

+0

아마도 세계화 설정 - 내 컴퓨터에서 그 표현이 일치합니다. –

관련 문제