样本数据:
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;
如果用户没有指定第二个过滤器,您可以将其空为(?:)
。
我很肯定,如果你读了几分钟关于正则表达式的语法,你可以创建这样的表达式,所以请允许我推荐:
- 正则表达式教程(Regular - Expressions .info)一个非常全面的教程来学习正则表达式。
- regex101.com。允许您测试不同的表达式,并了解模式匹配主题字符串的方式。