正则表达式首字母缩写词匹配和拼写错误修正

时间:2014-03-31 15:55:51

标签: javascript regex

我正在尝试修复一些拼写错误,一个常见错误是句子之间缺少空格:"This is a sentence.Here is another sentence."我想匹配并添加空格,所以我写了这个正则表达式:

var re = /\.(?=[A-Z]|\()/g;
var res = str.replace(re, '. ');

这涵盖了压扁的句子,以及涉及括号的另一个错字,这对于这个问题并不重要。

问题是出现了缩写词,它们也匹配并且(错误地)替换。示例:“美国是一个国家”被替换为“美国是一个国家”。我试图阻止这些首字母缩略词匹配。我想也许我想要的是“lookbehind”,但javascript不支持。

知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

你可以尝试:

\.(?=[A-Z]|\()(?![A-Z]\.)

这确保了“。”之后的进行中的字符。不包括大写字母后跟“。”

答案 1 :(得分:0)

这似乎有效:

var str = "A sentance.Another sentance with an A.C.R.O.N.Y.M.Yet another sentence."
var re = /\.(?=[A-Z][^.]|\()/g; 
var res = str.replace(re, '. ');
res // => "A sentance. Another sentance with an A.C.R.O.N.Y.M. Yet another sentence."