在pig grunt shell中跳过正斜杠以匹配每行

时间:2016-09-20 05:46:13

标签: regex apache-pig grunt-shell

inputData = load '/user/admin/logs/chat_miss' as line:chararray;
filteredData = filter inputData by line matches '([\\d\/]+)\/([\\d:]+)\\s+([\\w\\d]+)\\s+([\\w\\W]+):\\s+([\\w]+)\\W+([\\w]+)\\s+([\\w\/-]+.\\w+)';

上面是我的示例两行代码,我想加载一个文件并使用这个正则表达式匹配每一行。我发现每个元字符都需要额外的反斜杠。但问题在于我想跳过一个特殊的角色。

这是错误:

ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 7, column 55>  Unexpected character '/'

这是我期望匹配的样本行:

13/06/2016/19:15:32 imagecache1 varnishd[8412]:  MISS        :  chat     /cloud/chatContens-139/2111400434/3646261465820934391.jpg

1 个答案:

答案 0 :(得分:0)

刚刚发现,每次跳过反斜杠都需要额外的反斜杠。即

filteredData = filter inputData by line matches '([\\d\\/]+)\\/([\\d:]+)\\s+([\\w\\d]+)\\s+([\\w\\W]+):\\s+([\\w]+)\\W+([\\w]+)\\s+([\\w\\/-]+.\\w+)';