正则表达式零宽度断言 原
正则表达式是一个十分有用的搜索匹配工具,比一般的搜索查找函数功能强很多。在今天的项目中就遇到了一个问题,体会很深。
遇到的问题
今天想将一个css文件的类名进行改写。因为css类名经常冲突的原因。就想到了使用替换。那么具体要替换什么呢?因为是类名,那么当然替换点了(.)。乍一看,挺不错的。但实际操作做就遇到了问题。比喻下面的代码片段:
.panel { margin-bottom: 20px; background-color: #ffffff; border: 1px solid transparent; border-radius: 4px; -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }
上面如果将. 替换为.zmax- 那么.panel类自然可以替换为.zmax-panel。很好的解决了我的问题,可是我发现0.05这个数字也替换成了 0.zmax-05了。这显然不是我需要的结果。
如何解决这个问题
进过仔细的分析,我发现我需要替换的. 应该是后一位必须是字母。也就是是说,如果有一个匹配能够判断后面是什么就匹配的话,那就匹配成功。这个就是本文开头提到的零宽度断言。他的意思是说,只有后面的某一些内容符合的情况下,这个正则才匹配。
关于零宽度断言的专业定义如下:
(?=exp),他断言自身出现的位置的后面能匹配表达式exp.
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。