【问题标题】:Javascript Regex can't match ellipsisJavascript 正则表达式无法匹配省略号
【发布时间】:2014-02-16 21:36:52
【问题描述】:
我当前使用的正则表达式如下:
var sentences = fulltext.match(/[^\.!\?]+[\.!\?]+/g);
返回一个数组,其中包含空格的句子拆分(我需要所有字符)。问题是,它不适用于省略号“...”,我想它也不适用于其他非常规形式的标点符号。
如何修复我的正则表达式以匹配此标点符号和其他形式的标点符号?
是否有任何 noob 友好的 REGEX 示例驱动指南?
【问题讨论】:
-
省略号也有自己的字符/代码点 -- U+2026 或 \u2026 -- 与 3 个连续的 .s (U+002E) 不同。
-
标签:
javascript
regex
match
ellipsis
【解决方案1】:
省略号的Unicode是\u2026。
所以你可以使用\u2026 来匹配省略号。
代码:
var fulltext= "First sentence… Second sentence. ";
fulltext.match(/([^.?!;\u2026]+[.?!;\u2026]+)/g);
输出
["First sentence…", " Second sentence."]
DEMO and Explanation
【解决方案2】:
您可以将省略号(和任何其他标点符号)添加到您的字符集中。
var input = "First sentence… Second sentence. ";
input.match(/[^\.\?!;…]+[\.\?!;…]+/g);
结果:
["First sentence…", " Second sentence."]