regex - 配置单元regexp_extract数据

标签 regex hive

我正在尝试在 hive 上使用regexp_extract。

我有性质不同的数据,例如:
a2=new something a1=asdasdsad;a2=old something;a3=asadasdsadsa a2=Some place;alksndklsand;a1=asdklsad
现在,我只需要提取a2数据。
分号表示a2数据的结尾,但可能并非在每种情况下都存在。

我一直在尝试用';'修饰到列,然后运行regexp_extract来提取“a2 =“和第一个”;“之间的数据(添加“;”以使逻辑与所有情况兼容):
regexp_extract(concat(other_data,';'),'(.*)a2=?(.*?);.*',2)
但这根本不起作用。

有人可以为此建议一个更好的正则表达式吗?

谢谢。

最佳答案

(?<=a2=)[^;]*(?:;|$)

试试看。看演示。

https://www.regex101.com/r/rC2mH4/7

关于regex - 配置单元regexp_extract数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28337821/

相关文章:

python - 正则表达式查找特定单词之后的所有单词?

hadoop - 运行配置单元查询时收到以下错误。可能是什么原因造成的?

java - 不区分大小写的字符串过滤器

javascript - JavaScript的replace()的正则表达式是什么来替换第二次出现的 ":"?

javascript - 无法使用正则表达式提取模式之间的字符串

java - java中以下条件的模式

database - 存储和解析文本日志和报告的理想系统

hadoop - Hadoop-使用PIG加载Hive表

hadoop - 什么是 Facebook 的 HiPal 数据分析工具,它是如何工作的?

postgresql - 配置单元使用日期函数错误将当前日期插入表中