php – 正则表达式(?<! - )是什么意思?

前端之家收集整理的这篇文章主要介绍了php – 正则表达式(?<! - )是什么意思?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试了解一段代码,并遇到了 PHP的preg_replace函数中使用的这个正则表达式.
'/(?<!-)color[^{:]*:[^{#]*$/i'

这个位…(?<! - )
没有出现在我的任何注册手册中.任何人知道这是什么意思? (Google没有返回任何内容 – 我不认为符号在谷歌中工作.)

?<!在一个括号组的开始是一个 negative lookbehind.它断言,颜色字(严格来说,引擎中的c)之前没有一个字符.

所以,对于一个更具体的例子,它将匹配字符串中的颜色:

color
+color
someTextColor

但是它会失败,如 – 彩色或背景颜色.还要注意,引擎在技术上不会匹配c之前的任何一个,它只是断言它不是连字符.这可能是一个重要的区别取决于上下文(illustrated on Rubular with a trivial example;注意,只有最后一个字符串中的b匹配,而不是前面的字母).

猜你在找的PHP相关文章