gpt4 book ai didi

PHP 正则表达式首先提取嵌套表达式然后提取外部表达式

转载 作者:可可西里 更新时间:2023-11-01 00:49:06 26 4
gpt4 key购买 nike

我的一些代码有问题。

这是代码

$test ='<number>1<number>2</number>3</number>';

$i=0;
$find[$i]="#<number>(.*)</number>#is";
$replace[$i]="5";

$i++;
$find[$i]="#<number>(.*)</number>#is";
$replace[$i]="$1";


echo htmlentities(preg_replace($find, $replace, $test));

目前这只在结果中显示数字 5。但我希望它显示 153有谁知道我做错了什么?谢谢

最佳答案

是的,因为 .* 匹配所有内容(包括标签),所以你匹配的太多了。如果您通过阻止正则表达式匹配尖括号来限制正则表达式不跨标记边界匹配,您将获得所需的结果:

$test ='<number>1<number>2</number>3</number>';

$i=0;
$find[$i]="%<number>([^<>]*)</number>%is";
$replace[$i]="5";

$i++;
$find[$i]="%<number>([^<>]*)</number>%is";
$replace[$i]="$1";

关于PHP 正则表达式首先提取嵌套表达式然后提取外部表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11226633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com