当人们写下以下内容时,这是我用来清理句子的当前正则表达式:
你好。我是安德烈斯,对吧?
它将自动转换为:
您好。我是安德列斯,对吧?
当字符串中有数字时,问题出现了。例如:
我有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.');
问题:当,。字符位于数字之间时,如何避免应用这些规则?谢谢!
答案 0 :(得分:4)
使用正则表达式
(?<!\d)[.,!?](?!\d)
或
(?<!\d)[.,!?](?![.,!?\d])