多个过滤器正则表达式

时间:2015-09-16 02:25:35

标签: regex datatables

示例数据:

ID Name User 12 Test Same 14 Xyz Joe 15 Abc John 16 Def Bill 17 Ghi Donald

如果用户搜索Abc或Joe,他应该获取该行。

正则表达式:

'Abc|Joe'

输出:

14 Xyz Joe
15 Abc John

现在,如果用户进一步搜索e,它应该根据先前的输出(检索到2行)进行过滤,因此我将获得14个Xyz Joe。这可能使用正则表达式吗?

我想把所有这些都放在一个正则表达式中。

`'Abc|Joe and the second filter goes here (All in one regex)'`

使用案例:用户选择复选框以设置要对数据应用的过滤器(名称和用户列中的所有数据均可用)。然后,他可以使用搜索文本框再次搜索过滤后的结果。

2 个答案:

答案 0 :(得分:1)

对于2个过滤器:

/^\d+\s+(?:Abc|Xyz|Def)\s+\S*(?:Jo|ill).*/mg;

如果用户没有指定第二个过滤器,您可以将其留空(?:)

如果您阅读有关正则表达式语法的几分钟,我可以创建这些表达式,所以请允许我建议:

  1. Regular Expressions Tutorial (regular-expressions.info)。学习正则表达式的相当全面的教程。
  2. regex101.com。允许您测试不同的表达式并了解模式与子喷射字符串的匹配方式。

答案 1 :(得分:1)

((firstRegex)(?:.*(secondRegex)))|((secondRegex)(?:.*(firstRegex)))

((Abc|Xyz)(?:.*(Jo)))|((Jo)(?:.*(Abc|Xyz)))

See Demo

我们不知道之前或之后的正则表达式,所以它有两种情况,我们使用|结合这些情况。如果有更多的搜索,建议你写一些代码。