我有一堆字符串有各种前缀,包括“unknown:”我真的想在我的Pig脚本中过滤掉以“unknown:”开头的所有字符串,但它似乎不起作用。< / p>
simpleFilter = FILTER records BY NOT(mystr MATCHES '^unknown');
我已经尝试了一些正则表达式的其他排列,但看起来MATCHES
对NOT不起作用。我错过了什么吗?
使用Pig 0.9.2
答案 0 :(得分:15)
这是因为matches
运算符的运行方式与Java的String#matches
完全相同,即它尝试匹配整个String而不仅仅是它的一部分(在您的情况下为前缀)。只需更新正则表达式,使整个字符串与指定的前缀相匹配,如下所示:
simpleFilter = FILTER records BY NOT(mystr MATCHES '^unknown.*');