如果句子前面有特定单词,则匹配一个单词

时间:2018-08-30 23:31:19

标签: regex

如果句子中之前有特定单词,我想匹配一个单词,例如:

  

test1 foo test2 bar

如果barfoo之前和/或之后的句子中,我想匹配bar

我尝试过:

(?<=(foo ([\w ]+)(?= bar)))bar

但是不起作用,正则表达式不正确,因为后面有+ ...

能帮我吗,谢谢

1 个答案:

答案 0 :(得分:1)

如果必须使用一个正则表达式,只需将[\w ]+从后面移开即可。然后使用替代项查找单词bar(单独查找,而不作为另一个单词的一部分),然后查找foo:

((?<=foo)[\w ]+\bbar\b|\bbar\b[\w ]+(?=foo))

Regex101 demo