2014-01-08 178 views
0

我试图在每个句点(句号)后添加一个空格。但是,如果它不是一个小数点或JavaScript我用下面的正则表达式的abbreviation.Using:正则表达式Javascript查找/替换

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

样品字符串:

一个苹果,day.keeps医生away.apple 3.0只是 amazing.Iphone 5也不错。

输出:

一天一个苹果。让医生远离。苹果3.0简直太神奇了。 I. 也不错。

手机消失了一些奇怪的原因。我用regexpal.com,它能够按预期找到这些部分。更换有问题。

此外,我会很感激一些伟大的查找和替换调试器的建议。

+0

什么是缩写示例?你的意思是一个缩写吗? – elclanrs

+1

你打算如何区分句子末尾和点语法代码(foo.bar)或电子邮件地址([email protected])等之间的区别?正则表达式不会帮助你。 – Robusto

+0

在测试中添加一个URL可以帮助 – Rob

回答

2

你还没有逃过这段时间,所以有些角色被剥离出来。您也离开$3$4。由于它们完全相互交替,以下内容应该可以工作(并且将与您的示例一起使用):

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