为什么负面回顾在正则表达式中以这种方式工作?

时间:2017-03-16 15:46:30

标签: regex

正则表达式((?!hede).)*$匹配sasha hede,它与ede部分匹配,这对我来说很有意义。但正则表达式^((?!hede).)*仅匹配sasha<space>,我希望它与sasha hed匹配。我错过了什么?

1 个答案:

答案 0 :(得分:3)

这部分......

((?!hede).)*

...被视为&#39;匹配任意数量的符号,每个这些符号不是hede序列&#39;的开头。换句话说,您设置的规则应该与匹配的子字符串中的每个字符匹配。

sasha hede中,仅sasha(空白)字符符合描述。但是,h符号不会(它会启动hede序列),因此必须在此处停止匹配。

顺便说一句,它与第一个模式(绑定到字符串的结尾)相同:匹配在模式排除的第一个符号处停止。如果不是这样,则整个字符串将匹配,而不仅仅是ede