Javascript正则表达式匹配多个字符串(AND,OR,NEAR / n,P / n)

时间:2018-02-16 15:28:32

标签: javascript regex

我需要根据相当复杂的查询过滤字符串集合 我将查询输入作为字符串

var query1 ='Abbott near/10 (assay* OR test* ) AND BLOOD near/10 (Point P/1 Care)'; 

从这个查询INPUT字符串我想收集重要的单词:

var words= 'Abbott assay* test* BLOOD Point care';

查询可以更改,例如:

var query2='(assay* OR test* OR analy* OR array) OR (Abbott p/1 Point P/1 Care)';

来自此查询需要收集

var words='assay* test* analy* array Abbott Point Care';

我正在寻找你的建议。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以在正则表达式中使用|来捕获要删除的字词和/或特殊字符:

([()]|AND|OR|(NEAR|P)\/\d+) ?

DEMO: https://regex101.com/r/rqpmXr/2

请注意正则表达式选项中的/gi,其中i表示它不区分大小写。

<强>说明

  • ([()]|AND|OR|(NEAR|P)\/\d+) - 这是一个捕获组,其中包含您在标题中指定的所有字词以及括号。
  • (NEAR|P)\/\d+ - 只需清除此部分,\d+表示一个或多个数字位于NEARP之后。
  •  ? - 捕获捕获的单词后可能的尾随空格。