2011-04-16 61 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