如何替换下一行中的字符串
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 之间将保留匹配表达式时 test 和 string 之间的任何字符。
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
我想用“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 之间将保留匹配表达式时 test 和 string 之间的任何字符。
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