我尝试使用preg_replace但它不起作用。
我编写了下面的代码,但它返回为空。
$str = 'amin.m is 1.2 ^.j ';
echo $str.'<br>';
echo preg_replace('/(\D|\d)\.(\D|\d)', '\1\(dot\)\2', $str);
答案 0 :(得分:0)
有几个笔记......
您的模式在|
和\D
之间使用了管道\d
。这两个字符是完全相反的,所以我认为你可能想要的是\S
,它可以匹配任何非空格字符。通过移除管道,您的模式可减少其步数(提高效率)。
您不需要在替换字符串中转义括号 - 除非您想在输出中看到这些斜杠。
新模式:/(\S)\.(\S)/
Demo Link
新PHP:(Demo Link)
$str = 'amin.m is 1.2 ^.j ';
echo $str.'<br>';
echo preg_replace('/(\S)\.(\S)/','\1(dot)\2',$str);
输出:
amin.m is 1.2 ^.j
amin(dot)m is 1(dot)2 ^(dot)j