如何提取子字符串红移,Postgres



我在从列中提取子字符串时遇到问题。

我需要提取一个数字,它介于两个字符串之间:<=>level[highlighted]

我使用了这样的东西:

split_part(SPLIT_PART(mycolumn, '<=>', 2), '<br>level[highlighted]', 1)

但是有一个问题,因为字符串<=>在一行中包含多次(但字符串<br>level[highlighted]在每行中只有一次(。

您可以使用正则表达式来匹配和提取数据:

波斯特格雷斯

with _t as (
select 'foo<=>bar<=>123<br>level[highlighted]'::text as col
)
select
substring(col, '<=>(d+)<br>level[highlighted]')
from
_t
;

其中(d+)是(1 个或多个(数字的匹配组;结果将是:

substring
-----------
123
(1 row)

红移

使用regexp_substr()也可以达到类似的结果。

相关内容

  • 没有找到相关文章

最新更新