[英]How to extract the number with decimal in Hive using regexp_extract
[英]Hive SQL regexp_extract (number)_(number)
我是 hiveSQL 的新手,我试图从数据df
中的col_a
列中提取一个值,格式如下: \\\"id\\\":\\\"101_12345\\\"
我只需要提取101_12345
,但下划线很难满足我的需要。 我尝试使用regexp_extract(col_a, '(\\d+)[_](\\d+)')
但只输出101
。 我可以得到一些关于正则表达式的帮助吗? 谢谢
简单的解决方案:您不需要两个括号。
这是一个可行的解决方案: '\\d+[_]\\d+'
当您将标记放入括号时,正则表达式引擎会将其匹配组合在一起,与完整匹配分开。 所以最终结果将包括完整的匹配,以及两个额外的匹配,代表下划线前后的匹配。 为避免这种情况,只需删除括号,因为您并不需要它们。
将来,如果您想将正则表达式组合在一起但不希望结果单独包含它,请使用(?:)
给出的non-capturing group
。
这是您的代码生成的演示,托管在 regex101.com
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.