我想在每个时期(完全停止)后添加一个空格。但不是如果它是小数点或缩写。使用javascript我使用了以下正则表达式:
text.replace(/([^.]*?[a-zA-Z][^.0-9]*?)\.([\S][^.]*?)|([^.]*?[0-9])\.([^\s0-9][^.]*?)/g, "$1. $2")
示例字符串:
每天吃一个苹果。医生远离医生。苹果3.0就是这么简单 很棒.Iphone 5.也不差。
输出:
每天一个苹果。让医生远离我。 apple 3.0简直太神奇了。一世。 也不差。
电话因某些奇怪的原因而消失。我使用了regexpal.com,它能够按预期找到这些部分。替换存在问题。
另外,我很感激为一些很好的查找和替换调试器的建议。
答案 0 :(得分:2)
你没有逃过时期,所以有些角色被剥夺了。您也将离开$3
和$4
。由于它们彼此完全交替,因此以下内容应该有效(并且可以与您的示例一起使用):
replace(/([^.]?[a-zA-Z][^.0-9]?)\.([\S][^.]?)|([^.]?[0-9])\.([^\s0-9][^.]*?)/g,
"$1$3. $2$4")