Php mb_ereg_替换获取匹配项
我只是想知道,preg_replace函数的替换是什么 有可能得到这个吗 例如:Php mb_ereg_替换获取匹配项,php,preg-replace,Php,Preg Replace,我只是想知道,preg_replace函数的替换是什么 有可能得到这个吗 例如: $string = "test text 12345"; $string = mb_ereg_replace('#text|test#', '$1-test2',$string); 我想知道,“文本”和“测试”是否匹配?还是说打电话给preg_match绝对必要 嗯……您可以使用preg\u replace\u callback(),这将使您能够为每个匹配调用一个自定义函数。然后,您就可以“查看”匹配项,并
$string = "test text 12345";
$string = mb_ereg_replace('#text|test#', '$1-test2',$string);
我想知道,“文本”和“测试”是否匹配?还是说打电话给preg_match绝对必要 嗯……您可以使用
preg\u replace\u callback()
,这将使您能够为每个匹配调用一个自定义函数。然后,您就可以“查看”匹配项,并以您想要的方式替换它。如果它不是您试图查找的模式,而只是字符串中的文本,您可以使用strstr
$findthis = "Apple";
$container = "Apple Orange Kiwi";
if (strstr($container,$findthis))
echo $findthis.' is present';
else
echo 'Not found';
}
使用preg\u match()
进行测试,然后使用preg\u replace()
如果您想在preg\u replace\u callback()
中遇到问题,这也是一种解决方案。如果您只想做以下事情:
text
→ <代码>测试2)和在这种情况下,我只需使用replace,然后告诉字符串是否已更改(即进行了替换)。您可以通过引用将count变量传递到preg_replace,该变量将返回发生的匹配/替换数 看 试试这个:
$string = 'test text 12345';
if ($string != ($replaced = preg_replace('/text/', 'test2', $string))) {
echo 'text was replaced';
}
虽然如果您真的不需要preg_replace,您应该使用strstr或stristr。谢谢,但我使用的是mb_ereg_replace,我找不到mb_ereg_replace_回调函数……您要匹配还是替换?或者你想知道它是否真的取代了什么?如果是这样,您可以比较替换前后的$string。我要替换,并匹配替换。。。但对我来说,调用replace和match函数看起来不太好,因为我认为它们做的是相同的=>匹配注意,这个答案是针对原始preg_replace问题的谢谢,但它没有提供匹配的短语。:)@玛卡,我不太明白。你知道匹配的短语是什么:
test
。仅供参考,我建议您删除此问题,因为您对其所做的更改已使所有给出的答案无效。
$string = 'test text 12345';
if ($string != ($replaced = preg_replace('/text/', 'test2', $string))) {
echo 'text was replaced';
}