使用 apache pig 和文本
hahahah. my brother just didnt do anything wrong. He cheated on a test? no way!
我试图匹配“我哥哥只是没有做错任何事”。
理想情况下,我想匹配以“my Brother just”开头并以标点符号(句子结尾)或 EOL 结尾的任何内容。
查看 Pig 文档,然后按照 java.util.regex.Pattern 的链接,我想我应该能够使用
extrctd = FOREACH fltr GENERATE FLATTEN(EXTRACT(txt,'(my brother just .*\\p{Punct})')) as (txt:chararray);
但这似乎直到行尾都匹配。对于进行这场比赛有什么建议吗?我已经准备好拔掉我的头发了,拔掉我的头发,我的意思是切换到Python流
默认情况下量词是greedy http://www.regular-expressions.info/repeat.html#greedy。这意味着它们尽可能匹配。在这种情况下,您只想匹配第一个标点符号。换句话说,您希望尽可能少地匹配。
因此,为了解决您的问题,您应该通过添加一个来使量化器变得非贪婪?
紧随其后:
my brother just .*?\\p{Punct}
^
请注意,使用?
这里与用作量词不同,它的意思是“匹配零或一”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)