我想用PHP用另一个字符串替换空格。
我这样做如下:
$string = 'whatever text including some $text between delimiters$ and...';
$string_replaced = preg_replace('/\s\s+/', '\:', $string);
但是它替换了字符串中的所有空格,这很合逻辑。
我只希望将正则表达式应用于
$
分隔符之间。在official
preg_replace()
docs中,我找不到任何有帮助的内容。因此,我想我缺少一些允许这样做的PHP功能。
最佳答案
您可以使用preg_replace_callback
将$
符号之间的所有文本与'/\$[^$]*\$/'
匹配,然后仅在这些匹配的文本内替换1+空格:
$string = 'whatever text including some $text between delimiters$ and...';
$string_replaced = preg_replace_callback('~\$[^$]*\$~', function($m) {
return preg_replace('~\s+~u', ':', $m[0]);
}, $string);
请参见PHP demo
关于php - 替换空格,但仅在限制php之间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60706365/