2011-04-16 66 views
0

我有以下文本:var avarb avar var varb var。我想要做的只是提取「直接」var事件。上面的字符串包含3個。使正則表達式更短

rubular玩時,我組成了以下正則表達式:/\A(var)|\s(var)\s|(var)\z/。 有沒有簡化它的方法,以便在正則表達式中只使用var子字符串一次?

回答

5

試試這個用字邊界:

/\bvar\b/ 
+0

非常感謝,就像一個魅力:) – gmile 2011-04-16 14:32:27

0

如果我理解正確的話,你可以使用向前看符號和lookbehinds:

/(?<=^|\s)(var)(?=$|\s)/ 
1

要麼使用亞歷山大版本或

/(^|\s)(var)($|\s)/  # or: 
/(?:^|\s)(var)(?:$|\s)/ # (?:) will prevent capturing 
+0

感謝「預防捕捉「,並不知道 – gmile 2011-04-17 06:54:09