多个过滤器正则表达式



样本数据:

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)'`

用例:用户选择复选框来设置他想要应用于数据的过滤器(列Name和user中的所有数据都可用)。然后,他可以使用搜索文本框在过滤后的结果上再次搜索。

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

看到演示

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

对于2个过滤器:

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

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


我很肯定,如果你读了几分钟关于正则表达式的语法,你可以创建这样的表达式,所以请允许我推荐:

  1. 正则表达式教程(Regular - Expressions .info)一个非常全面的教程来学习正则表达式。
  2. regex101.com。允许您测试不同的表达式,并了解模式匹配主题字符串的方式。

最新更新