2012-01-19 7 views
1

나는 모든 유효한 단어를 파일에서 가져 오려고합니다. 올바른 단어는 다음과 같이 표시 될 수있는 일반 문자로 정의됩니다.정규 표현식

don't won't can't 

및 쉼표 기간과 느낌표를 무시해야합니다.

나는 문자를 얻는 표현식을 얻었으나 지금은 don't and can't or won't과 같은 단어를 얻지 못할 것이다.

이것은 "[^A-Za-z]+"을 사용하는 표현이며 "\'[^A-Za-z]+"을 시도했지만 모든 문자가 허용됩니다. 누구든지 정상적인 단어를 얻는 데 사용할 수있는 아이디어가 없으며 그런 단어를 포함하지 않을 수도 있고하지 않을 수도 있습니다.

당신에게

답변

1

[^A-Za-z] 그 문자 범위를 일치하지 않는 것을 의미 대단히 감사합니다! 이 시도 :

[A-Za-z'] 

당신은 작은 따옴표를 이스케이프해야 할 수 있으며,이 경우에 당신은 아마 그것을 탈출 슬래시 탈출해야합니다 :

[A-Za-z\\'] 
+0

[^ A-Za-z \ '] + 괜찮습니까? – mkuk

+1

'^'을 제거하십시오, 즉 대괄호 안에있는 어떤 것도 일치하지 않습니다! –

+0

문자와 공백을 인쇄하지 않고 추가 한 이유가 – mkuk

0

또 다른 방법 (약어를 사용)입니다 : \b[\w']+

+1

그러나 이것은 OP가 단어로서 갖기를 원치 않는'0-9'와'_'도 허용 할 것입니다. –

+0

네 맞은 수학. 커피 – mkuk

+0

@ mathematical.coffee : 동의했다. 그런데 Java에서 정규식을 테스트하기 위해 2005 년에 작은 테스트 프로그램을 작성하여 정기적으로 테스트 프로그램을 작성했습니다. http://sourceforge.net/projects/javaregextester/ – FriendFX

0

이것은 어떤 언어의 문자와도 일치하며 숫자는 제외합니다.

\b[\p{L}\!\'\?]+ 

다음은 정규식을위한 매우 유용한 리소스입니다. http://www.regular-expressions.info/