如何解决这个正则表达式?

问题描述 投票:1回答:1

我有一个正则表达式(\ S *吗?\ n)(\ S *?)),并根据https://regex101.com/它应该工作。唯一的问题是,事实并非如此。我想实现的是:

'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*?\))', '\2');
    dbms_output.new_line;
    dbms_output.put_line(l_example);
END;
/
regex oracle regexp-replace
1个回答
1
投票

请检查:

regexp_replace(l_example, '(,\s*?'|| CHR(10)||' *)(\s*?\))', '\2', 1, 1,'m');

db<>fiddle

© www.soinside.com 2019 - 2024. All rights reserved.