正则表达式提取字符串中多次出现的模式

时间:2015-02-27 10:06:08

标签: sql regex hadoop hive

我正在运行配置单元0.13。 我有一个列有各种字符串,如下所示: a:ABC,b:SDSD,c:213123#a:SDS,b:UIOU,c:89797#a:TYRQQQW,b:UIOUIOYYO,c:546654 a:DFSS,b:TYRTTN,c:12323#a:HJH,b:YTUUUTYUTYT,c:67890 a:TYY,b:OPIUIU,c:86768 它们可以是任意长度,一组a,b,c值将始终用'#'分隔。

现在,我尝试做的是,只提取b列,如: b:SDSD,b:UIOU,b:UIOUIOYYO b:TYRTTN,b:YTUUUTYUTYT

我一直试图做的事情是这样的 regexp_replace(column,'^channel:+[A-Z]{3,10},',")

即,将所有不是&b; b:...的值替换为空白,但这不起作用。

有人可以纠正我或提出更好的建议吗?

感谢。

1 个答案:

答案 0 :(得分:2)

[^b]:[^,]*,?

试试这个。empty space。见。演示。

https://regex101.com/r/wU7sQ0/27