JavaScript Split Regular Expression保留分隔符

时间:2012-06-27 15:46:17

标签: javascript regex

使用JavaScript我试图用正则表达式将一个段落分成它的句子。我的正则表达式没有考虑括号内的句子,我想保留分隔符。

我在jsFiddle.net here

中提供了代码示例

3 个答案:

答案 0 :(得分:4)

我选择了比赛而不是分手。它可能更紧密(例如,如果句子以...结尾,等等)。

text.match(/\(?[A-Z][^\.]+[\.!\?]\)?(\s+|$)/g);

http://jsfiddle.net/DepKF/1/

答案 1 :(得分:1)

@Utkanos你的想法很好,但我认为replace可能更好:

text.replace(/\(?[A-Z][^\.]+[\.!\?]\)?/g, function (sentence) {
    output += '<p>'+ sentence + '</p>';
});

http://jsfiddle.net/juGT7/1/

你不需要再循环。

答案 2 :(得分:1)

在正则表达式中使用(?= pattern)超前模式 示例

var string = '500x500-11*90~1+1';
string = string.replace(/(?=[$-/:-?{-~!"^_`\[\]])/gi, ",");
string = string.split(",");

这会给你以下结果。

[ '500x500', '-11', '*90', '~1', '+1' ]

也可以直接拆分

string = string.split(/(?=[$-/:-?{-~!"^_`\[\]])/gi);

给出相同的结果

[ '500x500', '-11', '*90', '~1', '+1' ]