如何替换下一行中的字符串

How to replace string present on next line

我想用“Hello World”。我希望 Hello 出现在第一行,而 World 应该出现在第二行,如下面的 Main 字符串

" This is a Test
string. This is a Test2 string"

输出应该像

" This is a Hello
World. This is a Test2 string"

另外替换

时不区分大小写

请在 Oracle SQL 中提出解决方案。

我试过这个查询。如果“测试字符串”出现在同一行,则用于替换。并且满足不区分大小写

SELECT REGEXP_REPLACE ('This is a Test string. This is a Test2 string',
                    'Test string',
                    'Hello World',
                   1,
                   0,
                   'i')  FROM DUAL;

您可以使用下面的正则表达式来获得您想要的结果。

表达式 Test(\W*)string 将匹配 test,然后是任何非单词字符(在本例中为空格和换行符),然后是单词 string 。它不匹配 Test2 string 因为 2 是一个单词字符。括号是下一个参数所必需的。

HelloWorld 将放置 Hello World 代替 test string 但将 \1 放在 hello 和 world 之间将保留匹配表达式时 teststring 之间的任何字符。

SELECT REGEXP_REPLACE ('This is a Test 
 string. This is a Test2 string',
                       'Test(\W*)string',
                       'HelloWorld',
                       1,
                       0,
                       'i') as result
  FROM DUAL;


                                            RESULT
__________________________________________________
This is a Hello
 World. This is a Test2 string