首页 文章

使用正则表达式获取包含特定单词的句子

提问于
浏览
1

我试图找到包含特定单词的句子 . 我定义了一个以下列字符开头和结尾的句子: . ! ?

var str = "Hello, how is it going. This is the bus we have to take!";
var regex = /[^.?!]*(?:[.?,\s!])(bus)(?=[\s.?!,])[^.?!]*[.?!]/igm;

var result = regex.exec(str);


output : `This is the bus we have to take!`

现在,当我试图找到包含单词 hello 的句子时,我遇到了麻烦,因为它很难进入它,即使我的眼睛下有文档!

1 回答

  • 1

    请记住,将文本拆分为语言句是一项非常具体,困难的任务,通常在NLP包的帮助下执行 .

    如果要限制遵循句子定义的特定字符串:

    • 使用 /[.?!]/ 正则表达式拆分

    • 检查条目是否包含带有 RegExp#test() 的子字符串,因为您需要不区分大小写的检查

    var str = "Hello, how is it going. This is the bus we have to take!";
    var chunks = str.split(/[.?!]/).filter(function(n) {
      return /hello/i.test(n);
    });
    console.log(chunks);
    

    请注意,要检查整个单词,您可以使用 /\bhello\b/i/(?:^|\s)hello(?!\S)/i regexps,具体取决于其他要求 .

相关问题