正则表达式的贪婪、非贪婪与回溯,哪种效率更高,你能否一语道破?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1826个文字,预计阅读时间需要8分钟。
首先,扫盲一下几个概念:
1. 正则表达式的贪婪:它指的是匹配时尽可能多地匹配字符。
2.非贪婪:匹配尽可能少的字符。
3.匹配优先级词:在正则表达式中,某些字符或模式比其他字符或模式更优先被匹配。
4.忽略优先级词:在正则表达式中,某些字符或模式可以不被考虑优先匹配。
下面是改写后的内容:
先扫盲一下,什么是正则表达式的贪婪?什么是非贪婪?或者说什么是对匹配优先级词,什么是忽略优先级词?哎,我也不清楚概念是什么,来举个例子吧。某同学想过过滤字符串之间的内容,那怎么办呢?
先扫盲一下什么是正则表达式的贪婪,什么是非贪婪?或者说什么是匹配优先量词,什么是忽略优先量词?好吧,我也不知道概念是什么,来举个例子吧。
某同学想过滤之间的内容,那是这么写正则以及程序的。
复制代码 代码如下:
$str = preg_replace('%<script>.+?</script>%i','',$str);//非贪婪
看起来,好像没什么问题,其实则不然。
本文共计1826个文字,预计阅读时间需要8分钟。
首先,扫盲一下几个概念:
1. 正则表达式的贪婪:它指的是匹配时尽可能多地匹配字符。
2.非贪婪:匹配尽可能少的字符。
3.匹配优先级词:在正则表达式中,某些字符或模式比其他字符或模式更优先被匹配。
4.忽略优先级词:在正则表达式中,某些字符或模式可以不被考虑优先匹配。
下面是改写后的内容:
先扫盲一下,什么是正则表达式的贪婪?什么是非贪婪?或者说什么是对匹配优先级词,什么是忽略优先级词?哎,我也不清楚概念是什么,来举个例子吧。某同学想过过滤字符串之间的内容,那怎么办呢?
先扫盲一下什么是正则表达式的贪婪,什么是非贪婪?或者说什么是匹配优先量词,什么是忽略优先量词?好吧,我也不知道概念是什么,来举个例子吧。
某同学想过滤之间的内容,那是这么写正则以及程序的。
复制代码 代码如下:
$str = preg_replace('%<script>.+?</script>%i','',$str);//非贪婪
看起来,好像没什么问题,其实则不然。

