繁体   English   中英

Pig:正则表达式语法

[英]Pig: Regular Expression syntax

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

我知道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"

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

^\S+$

假设您处于multiline模式。

  • 在Java中,您转义了反斜杠,因此变成^\\\\S+$
  • 在Java中,您可以使用(?m)打开multiline ,因此正则表达式可以是(?m)^\\\\S+$

参见演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM