regex - hive - 拆分函数中的正则表达式不提供输出。它是空的
问题描述
我想使用 hive 查询将字符串分成四个字符。
输入 : abcdefghijkl
select split("abcdefghijkl", '([a-zA-Z0-9]{4})') from table limit 1;
输出是["","","",""]
需要输出:["abcd","efgh","ijkl"]
解决方案
您可以使用
select split(regexp_replace("abcdefghijkl",'.*?([a-zA-Z0-9]{4})',',$1'),',') as output;
模式.*?([a-zA-Z0-9]{4})
匹配
.*?
- 任何 0+ 个字符,尽可能少([a-zA-Z0-9]{4})
- 捕获组 1:4 个字母数字字符
匹配被替换,
为第 1 组的内容。然后,split
用逗号分隔结果。
推荐阅读
- java - 如何使用按位运算检查置换的十六进制整数是否与另一个匹配(性能优化)
- python - Keras 使用固定种子获得不同的结果
- html - 纯 CSS 手风琴的可访问性问题
- php - 如何在 PHP 中使用 while 循环来使用 array_merge()?
- json - 在 JSON Builder 中从整数中去除引号
- flutter - Flutter 多列显示,就像 css3 列一样
- android-studio - 如何在 AndroidStudio 中修改资源?
- guice-persist - Guice Persist 具有多个持久性单元
- python - RPI 伺服帽子 python3 库抛出错误:“板”没有属性“SCL”
- ruby-on-rails - 如何在 Ruby on Rails 上使用 will_paginate gem 实现 Ajax