如何编写通过include标记和exclude标记拆分的正则表达式



嗨,我不擅长使用regex。所以我有一个问题。

我想按特定的标记拆分文本。

令牌列表将为"."、"?"。

另外,我想在分割文本中排除特定的单词。

具体的单词列表将是"Mr."。

这个是史密斯先生买的。我也是。->["史密斯先生买了这个。","我也是。"]

我想使用(javascript)regex来拆分此文本。

我该怎么办?

下面是一个简单的正则表达式,它与您提供的固定约束相匹配。然而,我怀疑它最终可能不那么有用,尤其是如果您打算使用动态拆分/忽略列表(这意味着regex模式的一些动态构建)。无论如何,我希望这种模式本身对你来说是一种很好的体验。

var example = "Mr. Smith bought this. and me too.";
var regexp = /((Mr.)|[^.?]+?)*[.?]/gi;
var result = [];
var captures;
while((captures = regexp.exec(example)) != null) {
    result.push(captures[0]); // trim?
}
console.log(result);

最新更新