2012-01-19 47 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

yes your right mathematical.coffee – mkuk

+0

@ mathematical.coffee:同意。順便說一下,爲了在Java中測試正則表達式,我在2005年寫了一個小測試程序,我仍然經常用它來構建它們:http://sourceforge.net/projects/javaregextester/ – FriendFX