我已经搜索了许多正则表达式匹配器,我有这样的字符串:
KRW3TR.899877.GR0054656*DR.798012...2..............GR0054656*EUR*
我已经用这个提取了,但是它失败了。REGEXP_EXTRACT(acolumn,'^([^.]+).?',2)
我想要的是KRW3TR.899877
如何regexp提取/修剪/regexp取代这个?
任何帮助/想法将不胜感激。谢谢你。
使用regexp:
select regexp_extract('KRW3TR.899877.GR0054656*DR.798012...2..............GR0054656*EUR*',
'^([^.]*\.[^.]*)'
,1) --extract group number 1
Regexp的意义:
^ - beginning of the string anchor
[^.]* - not a dot 0 or more times
\. - dot
[^.]* - not a dot 0 or more times
结果:KRW3TR.899877
您可以使用substring_index
,它返回给定分隔符(.)出现次数(2)之前的子字符串:
SELECT substring_index(
'KRW3TR.899877.GR0054656*DR.798012...2..............GR0054656*EUR*',
'.',
2
);