gpt4 book ai didi

php - preg_replace_callback 只替换第一次出现的

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:12 24 4
gpt4 key购买 nike

我有正则表达式来查找所有带百分比的数字 (100|\d\d|\d)\% - 此正则表达式已给出,我不能更改它。我有输入字符串:

Lorem ipsum 10% dolor, 8%sit amet 50%

然后我需要根据该正则表达式突出显示(使用 HTML 标记)部分字符串,这样我就会得到

Lorem ipsum <i>10%</i> dolor, <i>8%</i>sit amet <i>50%</i> 

因为 preg_replace 只能与 (100%|\d\d%|\d%) 这样的正则表达式一起使用,否则它只会突出显示数字 0-100。我像这样使用 preg_replace_callback:

<?php
$string = "Lorem ipsum 10% dolor, 8%sit amet 50%";
$count = 0;
function foo($matches){
global $count;
return "<i>".$matches[$count++]."</i>";

}
$reg = "/(100|\d\d|\d)\%/";
$str_out = preg_replace_callback($reg, "foo", $string, PREG_PATTERN_ORDER);
?>

虽然输出是这样的:

Lorem ipsum <i>10%</i> dolor, 8%sit amet 50%

只替换第一次出现的。

最佳答案

您还可以使用 preg_replace:

$reg = '/(100|\d\d|\d)%/';
$repl = preg_replace( $reg, '<i>$0</i>', $input);

RegEx Demo

关于php - preg_replace_callback 只替换第一次出现的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28835216/

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