在句点和逗号之后自动添加空格,同时避免使用数字

时间:2012-11-19 21:53:26

标签: php regex preg-replace

当人们写下以下内容时,这是我用来清理句子的当前正则表达式:

  

你好。我是安德烈斯,对吧?

它将自动转换为:

  

您好。我是安德列斯,对吧?

当字符串中有数字时,问题出现了。例如:

  我有40.381,32美元。

...将转换为:

  我有40 381,32美元。

我目前的代码:

echo preg_replace( '/[!?,.](?![!?,.\s])/', '$0 ', 'Hello my friend.There should be a space after sentence periods and commas, but that should not apply to 40.381,32 numbers.');

问题:当,。字符位于数字之间时,如何避免应用这些规则?谢谢!

1 个答案:

答案 0 :(得分:4)

使用正则表达式

(?<!\d)[.,!?](?!\d)

(?<!\d)[.,!?](?![.,!?\d])