我使用preg_replace来替换。用(点)但它是空的

时间:2017-08-10 16:29:49

标签: php preg-replace

我尝试使用preg_replace但它不起作用。

我编写了下面的代码,但它返回为空。

$str = 'amin.m is 1.2 ^.j ';
echo $str.'<br>';
echo preg_replace('/(\D|\d)\.(\D|\d)', '\1\(dot\)\2', $str);

1 个答案:

答案 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