尝试使用regex\u extract\u all()从字符串中获取多个匹配项

juud5qan  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(319)

我有一个字符串字段错误\u cd,值为“cntrlb cntrlb asdv cntrlb asvd cntrla cntrlb cntrlb”
在Pig里面,我试着用 REGEX_EXTRACT_ALL(error_cd, '.*(cntrl[a-b]).*') 找回一个元组 (cntrlb,cntrlb,cntrlb,cntrla,cntrlb) 或者只是 (cntrl,cntrl,...,cntrl) . 相反,我只赢了一场比赛 (cntrl) .
有人知道如何返回所有匹配项吗?

bmp9r5qi

bmp9r5qi1#

REGEX_EXTRACT_ALL 用于提取正则表达式中的所有捕获组。它不会多次应用单个正则表达式。这份文件有些过时了,但对我来说还是准确的 REGEX_EXTRACT_ALL .
没有正则表达式可以捕获任意数量的组(看这个问题。)如果你有一个已知的时间限制 cntrl 字符串可能会出现,你可以设计一个丑陋的正则表达式来捕获它们,但听起来你最好使用 TOKENIZE 然后分别处理字符串中的每个单词。

相关问题