当前位置:编程学习 > 网站相关 >>

正则表达式中的look-around

使用向前看和上后看你可以来完成各种各样的assert来满足你的需求。
在字符串处理时,你可以向前或者向后看,同时你可以让你所看的pattern是成功或者失败。
就像Java中的assert()
 
(?=pattern)
    is a positive look-ahead assertion
assert(pattern match) -->
 
(?!pattern)
    is a negative look-ahead assertion
assert(pattern not match) -->
 
(?<=pattern)
    is a positive look-behind assertion
assert(pattern match) <--
 
(?<!pattern)
    is a negative look-behind assertion 
assert(pattern not match) <--
 
look-ahead -->向前看
look-behind <--向后看
 
1. 寻找最后出现的字符串
这里有很多不使用左右看的方法来完成寻找最后出现的字符串,
但是如果你需要的是:最后的字符串是foo并且foo之后再也没有foo字符串了(可以有其它的字符串),你可以使用:
 
/foo(?!.*foo)/
 
正则表达式引擎会在找到foo之后使用look-around中的pattern .*foo去匹配,如果匹配到,但是因为是getative的,
所有assert失败,然后正则表达式引擎会继续查找下一个foo。
例如:foobar会匹配到第一个foo
补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,