gpt4 book ai didi

regex - 在模式 PostgreSQL 之后提取字符串

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

所以我有一个像下面这样的专栏:

diagnosis

715.16 oSTEOARTHRITIS, LOWER-LEG
715.17 - OSTEOARTHRITIS, ANKLE AND FOOT
715.90 oSTEOARTHRITIS, UNSPECIFIED
716.10 - TRAUMATIC ARTHROPATHY - UNSPECIFIED

有些条目有首字母破折号,有些则没有。有些在字符串后面有破折号。

我想选择具有以下模式的子字符串(斜体):

(任何字符)(破折号)(空格)(任何字母数字)(字符串的其余部分)

(任何字符)(空格)(任何字母数字)(字符串的其余部分)

我的查询是:select substring(diagnosis from '% #"\w%#"' for '#') from TableICDdict;

但它只返回所有包含空字符串的行(没有错误)。关于如何实际输出提取的子字符串的任何想法?

谢谢

最佳答案

使用 regexp_replace() 跳过第一个空格(和空格)之前的所有字符,使用 ltrim() 跳过额外的“-”字符串:

with t(diagnosis) as (values 
('715.16 oSTEOARTHRITIS, LOWER-LEG'),
('715.17 - OSTEOARTHRITIS, ANKLE AND FOOT'),
('715.90 oSTEOARTHRITIS, UNSPECIFIED'),
('716.10 - TRAUMATIC ARTHROPATHY - UNSPECIFIED'))
select ltrim(regexp_replace(diagnosis, '.*? (.*)', '\1'), '- ') result
from t;

result
-------------------------------------
oSTEOARTHRITIS, LOWER-LEG
OSTEOARTHRITIS, ANKLE AND FOOT
oSTEOARTHRITIS, UNSPECIFIED
TRAUMATIC ARTHROPATHY - UNSPECIFIED
(4 rows)

关于regex - 在模式 PostgreSQL 之后提取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34687922/

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