我试过这个
正则表达式:
^(?:(?![_]{2}).)+$
文本:
abcc..abc
abcdefgh_
abcd_abcd
abc_a_abc
abc__abcd
a__abcde_
abc++abcd
突出显示文本意味着匹配。
上面的正则表达式的字面意思是“匹配由除“以外的任何字符构成的任何行__
”,我只是想知道这个正则表达式的评估过程,据我了解,这个过程假设是这样工作的
考虑文本:abc__abcd
评估过程:
- 检查条件
^
(匹配)。 - 检查条件
.+
(匹配)。 - 检查条件
$
(匹配)。
到目前为止,所有正则表达式仍然可以匹配我们考虑的文本。
- 检查负前瞻的条件。
(?![_]{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)
...
我的理解正确吗?