这是一种奇怪的情况,但我正在寻找一种方法来过滤使用像MATCHES这样的东西,但是在未知模式列表中(未知长度)。
也就是说,如果给定的输入是两个文件,一个是数字A:
XXXX
YYYY
ZZZZ
zzyy
...等...
另一个有模式B:
XX *
YYY。*
...等...
如何通过第二个中的所有模式过滤第一个输入?
如果我事先知道所有的模式,我可以 A = FILTER A BY(num MATCHES'tomepattern。*'或num numCHCH''someotherpattern'....);
问题在于我事先并不知道它们,因为它们是模式而不是简单的字符串,所以我不能只使用连接/组(至少就我所知)。 也许是一个奇怪的嵌套FOREACH ......的事情? 有什么想法吗?
答案 0 :(得分:3)
如果您使用|
作为OR
运作,则可以使用各个模式构建模式。
(xx.*|yyy.*|zzzz.*)
这将检查它是否与任何模式匹配。
编辑:
要创建组合的正则表达式模式:
*创建以(
开头的字符串
*读入每一行(假设每一行是一个模式)并将其附加到一个字符串后跟|
*完成阅读行后,删除最后一个字符(这将是不需要的|
)
*附加)
这将创建一个正则表达式模式来检查输入文件中的所有模式。 (注意:假设文件包含有效模式)