如何编写包含令牌和排除令牌的正则表达式

时间:2015-02-16 10:53:19

标签: javascript regex

嗨我使用正则表达式并不好。 所以我有一个问题。

我想按特定标记拆分文字。

令牌列表将是“。”,“?”。

此外,我想在拆分文本中排除特定单词。

具体的单词列表将是'先生'。

(前)史密斯先生买了这个。我也是。 - > [“史密斯先生买了这个。”,“我也是。”]

我想使用(javascript)正则表达式来分割此文本。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

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

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);