繁体   English   中英

如何在字符串中的特定单词后选择 Oracle SQL 中的子字符串?

[英]How do I Select a substring in Oracle SQL after a specific word in the string?

我试图在“Hændelse”这个词之后提取以下字符串中的所有内容。

细绳:

Recordtype001[ efternavn = Nymark.] Adr2: 7020 Trondheim Hændelse A06: Udrejse er modtaget fra CPR-registeret.

我曾尝试使用 REGEXP_SUBSTR - 但它只返回字符串 't."' 的结尾。

我希望它回来

A06: Udrejse er modtaget fra CPR-registeret.

这是我尝试过的:

WITH data AS
 (
    SELECT '"Recordtype001[ efternavn = Nymark.] Adr2: 7020 Trondheim Hændelse A06: Udrejse er modtaget fra CPR-registeret."' string 
    FROM dual
 )
 SELECT string,
        REGEXP_SUBSTR(string, '[^Hændelse]+$') new_string
 FROM data;

你的正则表达式没有做你想做的。 您正在定义一个字符类,该类不能包含来自字符串 ' Hændelse'字符。 基本上它是在字符串末尾寻找除'H''æ''n''d''e''l''s''e'的一系列字符。

一种选择是regexp_replace()

regexp_replace(string, '^.*Hændelse\s*', '') new_string

请注意,使用简单的字符串函数会更有效地完成此操作(尽管有点复杂):

ltrim(substr(string, instr(string, 'Hændelse') + length('Hændelse'))) new_string 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM