Regex 如果在前面的句子中有一个特定的词,则匹配一个词

Regex 如果在前面的句子中有一个特定的词,则匹配一个词,regex,Regex,如果一个句子前面有一个特定的词,我想匹配一个词,例如: test1 foo test2 bar 如果foo在bar之前(和/或之后)的句子中,我想匹配bar 我试过: (?<=(foo ([\w ]+)(?= bar)))bar (?如果您必须使用一个正则表达式,您只需将[\w]+移出lookback即可。然后使用另一种方法查找单词栏(单独查找,而不是作为另一个单词的一部分),然后再查找foo: ((?<=foo)[\w ]+\bbar\b|\bbar\b[\w ]+(?=foo)

如果一个句子前面有一个特定的词,我想匹配一个词,例如:

test1 foo test2 bar

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

我试过:

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

(?如果您必须使用一个正则表达式,您只需将
[\w]+
移出lookback即可。然后使用另一种方法查找单词栏(单独查找,而不是作为另一个单词的一部分),然后再查找foo:

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

(?使用两个正则表达式:
if(/foo/&&&/bar/)
什么是正则表达式的风格?如果PCRE尝试的味道是Java如果你需要替换它,尝试并替换为
$1replaced
。如果你需要匹配:这个正则表达式将任何单词与bar匹配,我希望它只与bar匹配,如果之前有foo这个词,我不知道这是否真的可能。对此我很抱歉。我修改了正则表达式它只会将bar作为一个单词单独匹配。请看我的编辑。这个正则表达式将匹配“foo”之后的每个单词和空格,我认为它更像:(?你到底想匹配什么?单词foo?或bar?或???,或者只是想看看当bar与foo在一个字符串中时,模式是否匹配,在这种情况下,它实际匹配什么并不重要。实际上我没有看到@booble bubble答案,但它是这样的(如果“foo”在句子中,则匹配“bar”):但是有java风格