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

2022-03-22 00:00:00 regex php 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.');

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


解决方案

使用正则表达式模式

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

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

相关文章