以消极的眼光捕捉背后

Capture with negative look behind

假设我有以下主题:

abcdef ghidef

我想匹配 以 def 结尾且前面没有 abc 的单词(在本例中为 ghidef)。我该如何匹配?

当我使用:

(?<!abc)def

我得到了第二个 def 但我没有得到 ghi 这里。

不需要回头看。您可以使用负前瞻:

\b(?!abc)\w*def\b

RegEx Demo

正则表达式分解:

  • \b - 声明单词边界
  • (?!abc) - 否定先行断言一个词在 \b(词边界)
  • 之后不以 abc 开头
  • \w* - 匹配 0 个或多个单词字符
  • def - 单词的结尾文本是 def
  • \b - 单词边界