(?=pattern)
正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如, 'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。(?!pattern)
负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如, 'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。(?!pattern)
负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
解决方案 »
- 请教PHP中,是否有这样的方法。
- 求教:怎样把一个页面上的多个表单数据同时提交到另外一个页面上
- php正则表达式提问
- 想做用PHP做一个手机访问的网站,请教大家俩个问题!!
- linux(red hat)系统下无法建立文件夹(mkdir()没被禁用)
- php中有没类似ASP response.redirect的功能?
- 新手维护旧PHP网站,win2k+Apache2.0.55+php5.1.1+mysql5.0.16中文乱码
- 请大家帮忙!
- 有没有人告诉我开发文档里面程序流程逻辑要怎么写啊?
- 为什么我使用的php4.0.4 for windows 运行时总是出错?
- 求一个存储过程!
- 如何高效判断URL是否存在??
?! 代表后面不能有
?<=代表前面必须有
?<!代表前面不能有
windows 2000 is a os.表达式 => 结果
/windows/ => window
/windows (?=98)/ => null
/windows (?=2000)/ => window要求,我想匹配windows,但windows后面必需是2000才行,否则这个windows就不匹配.
windows 2000 符合
windows 98 不符合
注意:2000不在结果中,因为预查不消耗字符
When use preg_replace, you can use $1 to match "windows 2000" and $2 to match "2000" in the replacement variable.
例如
$str="winwinwin";
如果你用win(win)的话,那找到第一个结果后,将从"win"开始查找下一个结果。结果只找到一个匹配。
如果你用win(?=win)的话,那找到第一个结果后,将从"winwin"开始查找。这样共找到2个匹配。