2013-04-03 30 views
0

我有怎樣的一個noobish問題與或操作正則表達式或運營商

我想尋找

[a-zA-Z]+ 

其次

\-[a-zA-Z]? 

\'[a-zA-Z]? 

基本上抓住任何單詞,所以我可以忽略: 個空間,\t\n\n\r等我理解也是\w將是很好用,但我不想要的東西像9-10結果,我正在尋找純粹的單詞。

我知道(thing|thing2)是or的語法,但它只是捕獲整個單詞,然後作爲第二個匹配,收縮和帶連字符的單詞的後半部分。 任何幫助非常感謝,謝謝。

+0

所以你有什麼問題?你想捕捉整個單詞? (也就是說,你的連字符正則表達式只能捕獲連字符後面的第一個字母?) –

+0

我明白了: ([a-zA-Z] +(?:\ - ?[a-zA-Z] + | \'? [A-ZA-Z] *)) –

回答

2

可以使用字符類此:

[a-zA-Z]+[-\'][a-zA-Z]+ 

或者,如果你真的想使用or操作,你可以使用非捕獲組(?:)

[a-zA-Z]+(?:-|\')[a-zA-Z]+