我正在尝试使用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),)
谢谢
答案 0 :(得分:0)
(?<=\\#).*
应该会为您提供所需的东西。 ?<=是正向后后面跟\,用于转义#。最后,*将匹配#
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;`
请参见下文,正则表达式匹配“哈希表中的所有内容”