我的记录是这样的:
0x0000110PPPP111KZY0 H123456789 XYZ 000000000000000000607532030000607532000060753203002014101707199999
我正在寻找一个正则表达式,我可以分裂前3个字符 0x0 在Hive表中的一个字段中 000110PPPP111KZY0 在对定长文件和无分隔符等第二字段中。
0x0
000110PPPP111KZY0
pnwntuvh1#
Select regexp_extract(data, '^(\\dx\\d).*', 1), regexp_extract(data, '^\\dx\\d(.*)', 1) from (Select '0x0000110PPPP111KZY0 ' as data) a;
此代码返回一个包含两个字段的配置单元行:
0x0 000110PPPP111KZY0
mklgxw1f2#
我没有使用hadoop或hive的经验,但是下面的正则表达式将与我相信你正在寻找的东西一起工作。 /(\dx\d)(.*)/ 这将捕获/分割 0x0 进入第一个捕获组,之后的所有内容进入第二个捕获组。如果只希望数字/字母跟在0x0数字后面(因此 H123456789 或尾随词和字母),使用 /(\dx\d)([^ ]*)/ 如果我误解了你想要的是什么,你能澄清一下你提供的代码中你想要选择和/或捕获的部分吗?谢谢!
/(\dx\d)(.*)/
H123456789
/(\dx\d)([^ ]*)/
2条答案
按热度按时间pnwntuvh1#
此代码返回一个包含两个字段的配置单元行:
mklgxw1f2#
我没有使用hadoop或hive的经验,但是下面的正则表达式将与我相信你正在寻找的东西一起工作。
/(\dx\d)(.*)/
这将捕获/分割0x0
进入第一个捕获组,之后的所有内容进入第二个捕获组。如果只希望数字/字母跟在0x0数字后面(因此H123456789
或尾随词和字母),使用/(\dx\d)([^ ]*)/
如果我误解了你想要的是什么,你能澄清一下你提供的代码中你想要选择和/或捕获的部分吗?谢谢!