gpt4 book ai didi

regex - 我如何为 postgresql 编写这个正则表达式?

转载 作者:行者123 更新时间:2023-11-29 12:19:56 25 4
gpt4 key购买 nike

我该如何编写这个正则表达式?

来源 => 'fo3o321bar423ba 234 z'结果 => "fo 3 o 321 bar 423 ba 234 z"

select regexp_replace(trim(regexp_replace(trim(regexp_replace('fo3o321bar423ba 234 z', E'([a-z]*[0-9]*)', E'\\1 ', 'g')), E'([0-9]*[a-z]*)', E'\\1 ', 'g')),'[\s.]+', ' ', 'g')

最佳答案

您可以使用以下 regexp_replace 实现您想要的:

SELECT regexp_replace('fo3o321bar423ba 234 z', '([^0-9]|^)([0-9]+)(?=[^0-9]|$)', '\1 \2 ', 'g');

参见 demo

结果:fo 3 o 321 bar 423 ba 234 z

正则表达式匹配:

  • (^|[^0-9]) - 字符串或非数字的开头并存储在第 1 组中
  • ([0-9]+) - 1 个或多个数字
  • (?=[^0-9]|$) - 先行检查之后是否有非数字或字符串结尾。

替换字符串 - '\1\2 ' - 返回引用在带有 (...) 的模式中定义的捕获组 1 和 2。

'g' 表示我们要替换所有出现的地方,而不仅仅是第一个。

关于regex - 我如何为 postgresql 编写这个正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31863266/

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