我有以下文字:var avarb avar var varb var
。我想要做的是只提取“直接”var
事件。上面的字符串包含其中的 3 个。
在玩rubular时,我编写了以下正则表达式:/\A(var)|\s(var)\s|(var)\z/
. 有没有办法简化它,以便var
在正则表达式中只使用一次子字符串?
我有以下文字:var avarb avar var varb var
。我想要做的是只提取“直接”var
事件。上面的字符串包含其中的 3 个。
在玩rubular时,我编写了以下正则表达式:/\A(var)|\s(var)\s|(var)\z/
. 有没有办法简化它,以便var
在正则表达式中只使用一次子字符串?
使用单词边界试试这个:
/\bvar\b/
使用 Alexanders 版本或
/(^|\s)(var)($|\s)/ # or:
/(?:^|\s)(var)(?:$|\s)/ # (?: ) will prevent capturing
/\s+(var)\+/
似乎足够了?
如果我理解正确,您可以使用前瞻和后瞻:
/(?<=^|\s)(var)(?=$|\s)/