Pig:正则表达式语法

时间:2014-06-27 08:53:05

标签: java regex apache-pig

我在pig脚本中使用正则表达式进行字符串比较。

我知道PIG中的正则表达式与Java相同。

我面临的问题是:我需要删除尾端包含空格的所有字符吗?

我的正则表达式为:(name matches '!\\s+$')

示例脚本-----

raw_data = load '$input' using PigStorage(',') as (fname:chararray);
filter_data = filter raw_data by (fname matches '!\\s+$');
dump filter_data;

示例输入-----

abcd    ,123
pqrs,234
xyz ,234
lmn,2345

它没有在STDOUT上写任何内容,因为它应该写在"pqrs""lmn"

1 个答案:

答案 0 :(得分:1)

我不知道PIG,但在Java中,有一个语法正确的正则表达式匹配pqrs,234lmn,2345,并且会是:

^\S+$

假设您处于multiline模式。

  • 在Java中,您可以转义反斜杠,因此转换为^\\S+$
  • 在Java中,您可以使用multiline启用(?m),以便正则表达式为(?m)^\\S+$

请参阅demo