3

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

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

它将自动转换为:

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

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

我有 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.');

问题:如何避免在,. 字符在数字之间?谢谢!

4

1 回答 1

4

使用正则表达式模式

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

或者

(?<!\d)[.,!?](?![.,!?\d])
于 2012-11-19T21:55:07.000 回答