如何获得两个不同模式的n次出现之间的所有字符串

ykejflvf  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(397)

我有一个表,其中一个字段的值如下:

LLC1R.8888.GR0054656*DR.798012...2..............GR0054656*CNY*ARTIST*
TC1R.88.GR0054656*DR.765012...2..............GR0054656*EUR*LUKE*
K56R.8.GR0054656*DR.258812...4..............GR0054656*AUD*
790GG.88.GR0054656*DR.338012...5..............GR0054656*IDR*MATTHEW*
GREFD.888.GR0054656*DR.198012...6..............GR0054656*

试验结果:

ARTIST

LUKE

MATTHEW

如何在第3列和第4列之间提取并使另一列安全,因为结果将用于 case when ?
任何想法/帮助都将不胜感激。谢谢您。

zazmityj

zazmityj1#

你可以用

REGEXP_EXTRACT(col, '^(?:[^*]*\\*){3}([^*]*)', 1)

细节 ^ -字符串开头 (?:[^*]*\*){3} -三次出现除 * 然后是一个 * 烧焦 ([^*]*) -第1组:除 * .
索引参数设置为 1 从而提取第1组值。
请注意 (?:[^*]*\*) 是一个非捕获组,它不捕获(存储在单独的内存缓冲区中)它匹配的子字符串。

相关问题