2014-01-25 25 views
0

我使用的电流正则表达式是下列之一:的Javascript正则表达式无法比拟的省略号

var sentences = fulltext.match(/[^\.!\?]+[\.!\?]+/g); 

返回与句子的数组拆分包括空间(我需要的所有字符)。问题是,它不适用于省略号“...”,我猜它也不适用于其他非常规标点形式。

如何修复我的REGEX以匹配此标点符号和其他形式的标点符号?

有没有noob友好的范例驱动指南REGEX在那里?

+2

省略号也有自己的字符/代码点 - [U + 2026](HTTPS: //en.wikipedia.org/wiki/Ellipsis#Computer_representations)o r' \ u2026' - 与3个连续的“。”(U + 002E)不同。 –

+0

[标点符号(国际)的Javascript正则表达式的可能重复?](http://stackoverflow.com/questions/7576945/javascript-regular-expression-for-punctuation-international) –

回答

1

Unicode是\u2026

因此,您可以使用\u2026来匹配省略号。

代码

var fulltext= "First sentence… Second sentence. "; 
fulltext.match(/([^.?!;\u2026]+[.?!;\u2026]+)/g); 

OUTPUT

["First sentence…", " Second sentence."] 

DEMO and Explanation

+0

感谢您的演示+解释。 – Belohlavek

3

您可以将省略号(和任何其他标点符号)添加到您的字符集中。

var input = "First sentence… Second sentence. "; 
input.match(/[^\.\?!;…]+[\.\?!;…]+/g); 

结果:

省略号
["First sentence…", " Second sentence."]