正则表达式Javascript查找/替换

时间:2014-01-08 20:55:34

标签: javascript regex

我想在每个时期(完全停止)后添加一个空格。但不是如果它是小数点或缩写。使用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,它能够按预期找到这些部分。替换存在问题。

另外,我很感激为一些很好的查找和替换调试器的建议。

1 个答案:

答案 0 :(得分:2)

你没有逃过时期,所以有些角色被剥夺了。您也将离开$3$4。由于它们彼此完全交替,因此以下内容应该有效(并且可以与您的示例一起使用):

replace(/([^.]?[a-zA-Z][^.0-9]?)\.([\S][^.]?)|([^.]?[0-9])\.([^\s0-9][^.]*?)/g,
    "$1$3. $2$4")