2013-03-04 5 views
2

밑줄이있는 문자열 이외의 문자열과 일치하는 Regex를 작성하려고합니다.Regex를 사용하여 밑줄을 제외한 모든 문자 일치.

나는 이걸 가지고있다. /[A-Za-z0-9]+/ 나는 밑줄이 필요 없도록하기 위해 무엇을 넣어야할지 모른다.

업데이트 :

박쥐를 더 분명하게해야합니다. 전자 메일 주소를 일치 시키려고하지만 _ 부분 이후에 밑줄이있는 전자 메일 주소는 포함하지 않습니다.

이것이 현재까지 총계되었습니다. /[A-Za-z_0-9][email protected][A-Za-z0-9]+\.(com|ca|org|net)/ 대답은 아직로서, 밑줄을 제외한 모든 문자를 포함하는 1 개 이상의 문자의 문자열을 일치합니다

+2

은 '^ [^ _] + $'는 밑줄이없이 모든 문자열을 말한다. 예 :이 댓글이나 전체 질문. 너가 원하는게 그거야? – FakeRainBrigand

답변

2

당신이 무엇을 요구하고 있는지 이해한다면 - 밑줄이 포함 된 문자열을 제외하고 - 일치하는 문자열을 - 이것은 정규 표현식을 필요로합니다.

정규 표현식이 일반적으로 한 번에 한 문자 씩 작동하기 때문입니다. 따라서 캐릭터를 매치해야하는지 알고 싶다면 나중에 밑줄이없는 경우에만 미리보기를 사용해야합니다.

그래서 당신은 @ 기호 앞에 부분에서 가장 하나의 밑줄에있을 원하고, 부분 없음 밑줄 후 :

^((?!_)[A-Za-z0-9])+$

?!

가 편집하여 부정적 예측 운영자에게 있습니다 ?

^[A-Za-z0-9]+_?[A-Za-z0-9][email protected][A-Za-z0-9]+\.(com|ca|org|net)$

+0

@ 뒤에 밑줄이없는 것을 어떻게 보장합니까? – CodyBugstein

+0

문자 그룹 [A-Za-z0-9]에 밑줄 문자가 포함되어 있지 않으므로 밑줄이 일치하지 않으므로 @ 기호 다음에 오는 유효한 문자열은 하나 이상의 문자이며 마침표 다음에 (com | ca | org | net) 중 하나가옵니다. –

+0

아직 정규화되지 않은 경우 [Regex Pal] (http://regexpal.com)과 같은 사이트에서 테스트 문자열에 대한 정규식을 테스트하는 것이 좋습니다. –

11

/^[^_]+$/을 작동하지 않습니다.

관련 문제