我试图使用regex_extract从#推文中获取#之后的所有内容。我正在使用这段代码,但我一直没有得到任何错误,只是空白空间,我应该从推文中获取摘录,我做错了什么?
grunt> a = load '/user/manuelrivera11828510/lab/pig/full_text.txt' AS (id:chararray, ts:chararray, location:chararray, lat:float, lon:float,
tweet:chararray);
grunt> b = foreach a generate id, ts, (lat, lon) as location, REGEX_EXTRACT(tweet, '(.*)#(\\s{8})([:| ])(.*)',2) as hash;
这就是我得到的(一个例子):
(USER_8f811b71,2010-03-06T16:12:59,(40.722733,-73.5367),)
谢谢,
(?<=\\#).*
应该能满足您的需求。 ?<=是积极的后视,其次是\,用于转义#.Finally。*将匹配#前面的所有内容
a = load '/user/manuelrivera11828510/lab/pig/full_text.txt' AS (id:chararray, ts:chararray, location:chararray, lat:float, lon:float, tweet:chararray);
b = foreach a generate id, ts, (lat, lon) as location, REGEX_EXTRACT(tweet, '(?<=\#).*',1) as hash;`
请参阅下文,正则表达式匹配“在哈希面前获取所有内容”