如何改写PHP正则表达式,降低回溯并优化固化分组效率?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1901个文字,预计阅读时间需要8分钟。
首先查看问题。字符串:`script123456/script`复制代码如下:php$code='$str=\'script123456/script\';';正则表达式如下:php$regex1='%script.+%/%';$regex2='%script.+?%/%';$regex3='%script(?:\\?:(?!/script))%';
先来看下问题。字符串
复制代码 代码如下:
$str = '<script>123456</script>';
正则表达式为
复制代码 代码如下:
$strRegex1 = '%<script>.+<\/script>%';
$strRegex2 = '%<script>.+?<\/script>%';
$strRegex3 = '%<script>(?:(?!<\/script>).)+<\/script>%';
这三个正则,分别会造成几次回溯呢??
答案:
复制代码 代码如下:
$strRegex1 = '%<script>.+<\/script>%'; //9次,记得区别转义符号。
本文共计1901个文字,预计阅读时间需要8分钟。
首先查看问题。字符串:`script123456/script`复制代码如下:php$code='$str=\'script123456/script\';';正则表达式如下:php$regex1='%script.+%/%';$regex2='%script.+?%/%';$regex3='%script(?:\\?:(?!/script))%';
先来看下问题。字符串
复制代码 代码如下:
$str = '<script>123456</script>';
正则表达式为
复制代码 代码如下:
$strRegex1 = '%<script>.+<\/script>%';
$strRegex2 = '%<script>.+?<\/script>%';
$strRegex3 = '%<script>(?:(?!<\/script>).)+<\/script>%';
这三个正则,分别会造成几次回溯呢??
答案:
复制代码 代码如下:
$strRegex1 = '%<script>.+<\/script>%'; //9次,记得区别转义符号。

