如果句子中之前有特定单词,我想匹配一个单词,例如:
test1 foo test2 bar
如果bar
在foo
之前和/或之后的句子中,我想匹配bar
。
我尝试过:
(?<=(foo ([\w ]+)(?= bar)))bar
但是不起作用,正则表达式不正确,因为后面有+
...
能帮我吗,谢谢
答案 0 :(得分:1)
如果必须使用一个正则表达式,只需将[\w ]+
从后面移开即可。然后使用替代项查找单词bar(单独查找,而不作为另一个单词的一部分),然后查找foo:
((?<=foo)[\w ]+\bbar\b|\bbar\b[\w ]+(?=foo))