2

使用 JavaScript 我正在尝试使用正则表达式将段落拆分为句子。我的正则表达式不考虑括号内的句子,我想保留分隔符。

我在这里放了一个 jsFiddle.net 中的代码示例

4

3 回答 3

4

我采用了匹配方法而不是拆分方法。它可能更严格(例如,如果一个句子以...等结尾怎么办)。

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

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

于 2012-06-27T16:14:46.997 回答
2

在正则表达式示例中使用 (?=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' ]
于 2015-10-21T06:40:04.733 回答
1

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

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

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

您无需再次循环。

于 2012-06-27T17:52:07.843 回答