正则表达式?!的意思

五级会员 站长
发表于技术杂文分类
非获取匹配,正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。

简而言之就是把你规则否定匹配。

举例:

<(?!p |p>|/p |/p>|a |a>|/a |/a>)[\W\w]+?>

以上规则将不会匹配<p>、<p.*?>、</p>、</p.*?>、<a>、<a.*?>、</a>、</a.*?>,但会匹配除这些以外的所有符合条件的对象,例如:<span>、<span.*?>、</span.*?>、</span>

登录 分类