Pig匹配不匹配的数字

问题描述 投票:0回答:1

我已经花了数小时对此事扑朔迷离。 Pig的文档说它使用Java的正则表达式,但是当我在具有相同REGEX的Java中尝试相同的东西时,它可以按预期工作。

我有此数据:

id=6139406,ci=6139407,corr_id_=8c0c7700f95aa
id=6139106,ci=6139107,corr_id_=0e89749_df942a
id=6139906,ci=6139907,corr_id_=09ea6&f6cf94cb
id=6141100,ci=6141101,corr_id_=42ab372dfacd5
id=6141100,ci=6141101,corr_id_=asssddsA01

这个简单的Pig试图根据字母数字的id进行过滤;

A = LOAD 'users.dat' USING PigStorage(',') AS (id:chararray, tid:chararray, corr_id:chararray); -- loading data

B = FILTER A BY ($2 matches 'corr_id_=[a-zA-Z0-9]*'); 
DUMP B; 

在我尝试输入正则表达式的数字部分之前,一切正常。一旦输入0-9或\ d,它们在Java中都是有效的,就无法匹配。

我在这里想念什么?

regex apache-pig
1个回答
0
投票

语法是'.*expr.*'

B = FILTER A BY ($2 matches '.*(corr_id_=[a-zA-Z0-9]).*'); 
© www.soinside.com 2019 - 2024. All rights reserved.