gpt4 book ai didi

php - mb_eregi_replace 多个匹配得到它们

转载 作者:行者123 更新时间:2023-12-04 06:05:25 27 4
gpt4 key购买 nike

$string = 'test check one two test3';
$result = mb_eregi_replace ( 'test|test2|test3' , '<$1>' ,$string ,'i');
echo $result;

这应该提供: <test> check one two <test3>
有没有可能得到,那个 测试 测试3 找到了,而不使用另一个匹配函数?

最佳答案

您可以使用 preg_replace_callback 反而:

$string = 'test check one two test3';
$matches = array();
$result = preg_replace_callback('/test|test2|test3/i' , function($match) use ($matches) {
$matches[] = $match;
return '<'.$match[0].'>';
}, $string);
echo $result;

这里 preg_replace_callback将为模式的每个匹配调用传递的回调函数(注意 its syntax differs from POSIX )。在这种情况下,回调函数是 anonymous function将匹配添加到 $matches数组并返回要替换匹配项的替换字符串。

另一种方法是使用 preg_split 在匹配的分隔符处拆分字符串,同时捕获分隔符:
$parts = preg_split('/test|test2|test3/i', $string, null, PREG_SPLIT_DELIM_CAPTURE);

结果是一组交替的非匹配和匹配部分。

关于php - mb_eregi_replace 多个匹配得到它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8415891/

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