如何修复此正则表达式?
How to fix this regexp?
我有一个正则表达式 (,\s*?\n)(\s*?)),根据 https://regex101.com/ 它应该可以工作。唯一的问题是事实并非如此。我想要实现的是:
'some text,
)'
将转换为
'some text
)'
我知道,如果我的正则表达式能以某种方式工作,那么输出字符串将是:
'some text)'
有什么方法可以不将 ')' 移动到与 'some text' 相同的行吗?
我用来测试的样本:
declare
l_example varchar2(32000);
begin
l_example :='some text,
)';
dbms_output.put_line(l_example);
l_example := regexp_replace(l_example, '(,\s*?\n)(\s*?\))', '');
dbms_output.new_line;
dbms_output.put_line(l_example);
END;
/
请检查:
regexp_replace(l_example, '(,\s*?'|| CHR(10)||' *)(\s*?\))', '', 1, 1,'m');
我有一个正则表达式 (,\s*?\n)(\s*?)),根据 https://regex101.com/ 它应该可以工作。唯一的问题是事实并非如此。我想要实现的是:
'some text,
)'
将转换为
'some text
)'
我知道,如果我的正则表达式能以某种方式工作,那么输出字符串将是:
'some text)'
有什么方法可以不将 ')' 移动到与 'some text' 相同的行吗?
我用来测试的样本:
declare
l_example varchar2(32000);
begin
l_example :='some text,
)';
dbms_output.put_line(l_example);
l_example := regexp_replace(l_example, '(,\s*?\n)(\s*?\))', '');
dbms_output.new_line;
dbms_output.put_line(l_example);
END;
/
请检查:
regexp_replace(l_example, '(,\s*?'|| CHR(10)||' *)(\s*?\))', '', 1, 1,'m');