Regex 如何通过正则表达式查找字符串中的特殊单词

Regex 如何通过正则表达式查找字符串中的特殊单词,regex,Regex,我想通过正则表达式在字符串中查找foo,除了foo之外,它位于alt标记中,如下面的alt=“foo”;例如,这是我的字符串: 这是一个foo和foo alt=“foo”的示例 我想在这个字符串中找到所有的foo,除了这一部分中的foo:alt=“foo”,因此正则表达式应该只找到下面粗体的两个foo: 这是一个示例foo和fooalt=“foo” 如果alt=部分始终位于要匹配的单词之后,则可以使用以下正则表达式: (?<!alt=")\b(\w+)\b(?=.*alt="\1")

我想通过正则表达式在字符串中查找foo,除了foo之外,它位于alt标记中,如下面的alt=“foo”;例如,这是我的字符串:

这是一个foo和foo alt=“foo”的示例
我想在这个字符串中找到所有的foo,除了这一部分中的foo
alt=“foo”
,因此正则表达式应该只找到下面粗体的两个foo

这是一个示例foofooalt=“foo”


如果
alt=
部分始终位于要匹配的单词之后,则可以使用以下正则表达式:

(?<!alt=")\b(\w+)\b(?=.*alt="\1")
(?其中
$token
应替换为先前匹配的值
找到所有没有引用的内容,这就是你想要的吗?不。我的意思是所有不是这样的foo:alt=“foo”@Atefeh然后更改
(?!@Atefeh,这听起来像是一个非常模糊的规范。因此,任何foo,只要前面没有alt=,后面没有“?”,根据该规范,你可以在:bar“foo”bar alt中找到foo=“foobar”,但可能是故意的…@MarounMaroun这很好,但它不会匹配字符串,如
foo”
中失败,这是一个例子foo和foo alt=“foo”foo和foo alt=“foo”
@rock321987谢谢,添加了一个负面查找来修复这个问题