0

我试过这个

正则表达式

^(?:(?![_]{2}).)+$

文本:

abcc..abc

abcdefgh_

abcd_abcd

abc_a_abc

abc__abcd

a__abcde_

abc++abcd

突出显示文本意味着匹配。

上面的正则表达式的字面意思是“匹配由除“以外的任何字符构成的任何行__”,我只是想知道这个正则表达式的评估过程,据我了解,这个过程假设是这样工作的

考虑文本:abc__abcd

评估过程:

  1. 检查条件^(匹配)。
  2. 检查条件.+(匹配)。
  3. 检查条件$(匹配)。

到目前为止,所有正则表达式仍然可以匹配我们考虑的文本。

  1. 检查负前瞻的条件。

(?![_]{2})a(?![_]{2})b(?![_]{2})c(?![_]{2})_(?![_]{2})_(?![_]{2})a(?![_]{2})b(?![_]{2})c(?![_]{2})d

负前瞻执行:

(?![_]{2}) ab (match)
(?![_]{2}) bc (match)
...
(?![_]{2})__ (not match)
...

我的理解正确吗?

4

0 回答 0