2014-01-13 173 views
0

我正在嘗試爲Javascript寫一段正則表達式以獲得單詞列表的每一個匹配項,但只有當它們被非字符包圍時,字,非數字字符(沒有什麼適合/ a-zA-Z0-9_ /的正則表達式)。然而,到目前爲止我提出的正則表達式並不像我想要的那樣正常工作。它仍然允許旁邊的數字,也包括單詞兩側的字符。這裏是正則表達式我截至目前:Javascript正則表達式被非字字符包圍,不包含周圍字段

new RegExp("(?:^|\\W)(task|end|if|then)(?:\\W|$)", "gm") 

這裏是想什麼,我用這個爲例字符串:

task test() 
    if true then 
     print "hi" 
    end 
end 

這是什麼我應該怎麼辦呢?請記住,這是JavaScript,因此在正則表達式中不存在向後看的能力。

+2

請提供一些你想要匹配的例子。 – brandonscript

+0

請說明你是如何獲得這場比賽的 - 這可能是你的正則表達式是正確的,但你錯誤地使用了它 – Floris

回答

3

如果我正確認識你,你只是想捕捉taskendifthen如果它們出現自己,什麼也沒有對任何一方(全詞,周圍沒有數字)。要做到這一點,只需使用\b字邊界:

\b(task|end|if|then)\b 

工作例如:http://regex101.com/r/uM3zI6

如果這不是你的意思,請更新你的問題澄清的要匹配什麼樣的例子。

相關問題