Oracle regexp\u替换可选组
我有一个字符串“特定单词大世界,特定单词大太阳”。 输出字符串应如下所示:“特定单词,特定单词”。换句话说,我想删除“SPECIFIC WORD”后面的所有内容,但我想保留逗号。到目前为止,我尝试的是:Oracle regexp\u替换可选组,regex,oracle,regexp-replace,Regex,Oracle,Regexp Replace,我有一个字符串“特定单词大世界,特定单词大太阳”。 输出字符串应如下所示:“特定单词,特定单词”。换句话说,我想删除“SPECIFIC WORD”后面的所有内容,但我想保留逗号。到目前为止,我尝试的是: declare l_string varchar2(10000); begin l_string := 'SPECIFIC WORD BIG WORLD, SPECIFIC WORD BIG SUN, SPECIFIC WORD BIG EARTH';
declare
l_string varchar2(10000);
begin
l_string := 'SPECIFIC WORD BIG WORLD,
SPECIFIC WORD BIG SUN,
SPECIFIC WORD BIG EARTH';
dbms_output.put_line(l_string);
l_string := regexp_replace(l_string, '(SPECIFIC WORD) (BIG)(.*)(,)?', '\1\4');
dbms_output.put_line(l_string);
end;
/
我的问题是,在最后一次匹配时,将没有逗号,但当我将此逗号标记为可选序列时,我根本没有逗号。这有什么办法吗?我还尝试通过以下方式解决此问题:
但我不能将可选逗号作为一个单独的组来使用。根据您的描述,以下内容就足够了
l_string := regexp_replace(l_string, ' BIG \w+', '');
这只是搜索
- 空间
- 其次是大
- 后面跟着一个空格
- 后面跟着一个词 字符,一到无限次