2012-07-22 3 views
0

저는 Regex의 초보자이며이를 배우려고합니다. 내 요구 사항은 알파벳이 조금이라도 있으면 문자열을 유효한 것으로 간주하는 것입니다. 예 : abc, khj, sdfs는 유효한 단어이지만 Abc, KHJ, 123, $ bd는 유효하지 않습니다.일부 특수 문자를 건너 뛰는 C# 정규 표현식

private bool IsValid(string str) 
{ 
    Regex r = new Regex(@"[a-z][^<>%'=\$]"); 
    Console.WriteLine(str + " : " + r.IsMatch(str).ToString()); 
    return r.IsMatch(str); 
} 

을하지만이 방법으로 다음과 같은 입력에 통과 할 때 :

나는이 같은 정규 표현식을 쓰고

"a<>'b=b" 
"abc" 
"a$b" 
"123" 
"IHH" 

가 유효한 abc를 식별한다뿐만 아니라 인식된다 a$ba<>'b=b을 유효한 단어로 사용하십시오! (그 중 true을 반환하는 것) a$ba<>'b=b ??을 건너 뛰는 방법을 알고 싶습니다. 메서드는 false을 반환해야합니다.

제발 이해 좀 도와주세요.

감사

답변

1

를 사용하여 적절한 패턴 방법의 종류 :

private bool IsValid(string str) 
{ 
    Regex r = new Regex(@"^[a-z]+$"); 
    Console.WriteLine(str + " : " + r.IsMatch(str).ToString()); 
    return r.IsMatch(str); 
} 
+0

나는 이것을 시도하고있다, 그것은 지금 모든 입력에 대해 "거짓"을 준다. 심지어 abc, def 등등. – Micks

+0

수정, 그것이 작동합니다. 실수로 메서드에 입력으로 여분의 공간을 전달하고있었습니다. 나는 그것을 손질하고 작동한다. 고마워. – Micks

0

var pat = /^[a-z]+$/; 
+0

죄송합니다, 작동하지 않습니다. 그것은 모든 입력에 대해 거짓 (abc, def 등)을 제공합니다. – Micks

0

좋은 참고처럼 정규식 모양 : RegEx Cheat Sheet

을 시도해보십시오이 : ^[a-z]+$

+0

저는 이것을 시도하고 있습니다. 모든 입력에 대해 "false"를줍니다. abc, def 등에서도. – Micks

+0

수정, 작동합니다. 실수로 메서드에 입력으로 여분의 공간을 전달하고있었습니다. 나는 그것을 손질하고 작동한다. 고마워. – Micks