gpt4 book ai didi

regex - 提取字符串中的所有数字

转载 作者:行者123 更新时间:2023-11-29 14:06:18 26 4
gpt4 key购买 nike

如何提取字符串中的所有数字?

示例输入:

  • 7nr-6p
  • 12c-18L
  • 12nr-24L
  • 11nr-12p

预期产出:

  • {7,6}
  • {12,18}
  • {12,24}
  • 等...

以下是用第一个 7nr-6p 测试的:

select regexp_split_to_array('7nr-6p', '[^0-9]') AS new_volume from mytable;

Gives: {7,"","",6,""}//为什么只匹配数字会返回空格?

select regexp_matches('7nr-6p', '[0-9]*'::text) from mytable;

Gives: {7}//为什么不继续?

select regexp_matches('7nr-6p', '\d'::text) from mytable;

给出:{7}

select NULLIF(regexp_replace('7nr-6p', '\D',',','g'), '')::text from mytable;

给出:7,,,6,

最佳答案

以下查询:

select regexp_split_to_array(regexp_replace('7nr-6p', '^[^0-9]*|[^0-9]*$', 'g'), '[^0-9]+')
AS new_volume from mytable;

“修剪”前缀和后缀非数字并按剩余的非数字拆分。


select regexp_matches('7nr-6p', '[0-9]*'::text) from mytable;

Gives: {7} // Why isn't this continuing?

因为没有 'g' 标志,正则表达式在第一次匹配时停止。添加 'g' 标志:

select regexp_matches('7nr-6p', '[0-9]*'::text, 'g') from mytable;

关于regex - 提取字符串中的所有数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48956813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com