在使用 Regexp 方面需要帮助

Need help in using Regexp

SELECT value from table1 limit 3;

当我运行上述查询时,我得到以下结果:

;12770258;;;;103=::dupe::0|112=::dupe::0|114=search-results#product-id#Lettuce#not-recommended#r02#s01
;12880258;;;;103=::dupe::0|112=::dupe::0|114=search-results#product-id#Lettuce#not-recommended#r02#s01
;12990258;;;;103=::dupe::0|112=::dupe::0|114=search-results#product-id#Lettuce#not-recommended#r02#s01

我希望结果显示如下:

12770258
12880258
12990258

如何使用正则表达式实现这个?请指导。

如果您知道它始终是系列中的“第二个”值,则可以只使用 SPLIT。如果那不是真的,那么 REGEPX 版本将无法帮助您以太币。

SELECT ';12770258;;;;103=::dupe::0|112=::dupe::0|114=search-results#product-id#Lettuce#not-recommended#r02#s01' as col1
    ,split(col1,';')[1]::text;
COL1 SPLIT(COL1,';')[1]::TEXT
;12770258;;;;103=::dupe::0|112=::dupe::0|114=search-results#product-id#Lettuce#not-recommended#r02#s01 12770258

我们可以在这里使用REGEXP_SUBSTR

SELECT REGEXP_SUBSTR(value, '\d+', 1, 1, 'i', 1) AS output
FROM yourTable;

上面对 REGEXP_SUBSTR 的调用查找列中的第一个数字,从列的开头开始搜索。在正则表达式中,\d+ 匹配一组一个或多个数字字符。