当在整个字符串中找不到特定单词时,如何得到 not 'hit'?
How to get not a 'hit' when a specific word isn't found in the whole string?
我有几个字符串:
1. "I offer a jacket from adidas"
2. "I offer clothing from adidas, a jacket"
3. "By my adidas jacket"
4. "adidas jacket"
5. "jacket adidas"
6. "I offer some shoes from adidas"
7. "Selling some nice adidas shoes"
8. "I have some shoes from adidas"
现在我想要一个命中,当单词 "adidas" 被找到时,但当字符串 "jacket" 中的某个地方被包含时。
当单词 "jacket" 位于单词 "adidas" 后面时,我设法没有命中,但是当单词 "jacket" 位于 [ 前面时,我获得了命中=21=].
adidas(?!.*jacket.*)
显示 1.、5.、6.、7. 和 8 的命中。
但是 1 和 5 不应显示为命中。
您可以将否定前瞻放在开头并使用锚 ^
和词边界 \b
来防止该词成为更大词的一部分。
^(?!.*\bjacket\b).*\badidas\b.*
^
字符串开头
(?!.*\bjacket\b)
断言右边不包含jacket
.*\badidas\b.*
匹配 0+ 次任何字符,然后匹配 adidas
和 0+ 次任何字符
我有几个字符串:
1. "I offer a jacket from adidas"
2. "I offer clothing from adidas, a jacket"
3. "By my adidas jacket"
4. "adidas jacket"
5. "jacket adidas"
6. "I offer some shoes from adidas"
7. "Selling some nice adidas shoes"
8. "I have some shoes from adidas"
现在我想要一个命中,当单词 "adidas" 被找到时,但当字符串 "jacket" 中的某个地方被包含时。
当单词 "jacket" 位于单词 "adidas" 后面时,我设法没有命中,但是当单词 "jacket" 位于 [ 前面时,我获得了命中=21=].
adidas(?!.*jacket.*)
显示 1.、5.、6.、7. 和 8 的命中。 但是 1 和 5 不应显示为命中。
您可以将否定前瞻放在开头并使用锚 ^
和词边界 \b
来防止该词成为更大词的一部分。
^(?!.*\bjacket\b).*\badidas\b.*
^
字符串开头(?!.*\bjacket\b)
断言右边不包含jacket
.*\badidas\b.*
匹配 0+ 次任何字符,然后匹配adidas
和 0+ 次任何字符