相当于 regexp_replace((^[A-Z])|([IJ])|(?<= ).) 在 regexp_substr

Equivalent to regexp_replace((^[A-Z])|([IJ])|(?<= ).) in regexp_substr

在 DB2 中,下一个查询工作正常:

select  REGEXP_REPLACE( 'René de la Ömer-Arie IJsbrand IJsse'
                      ,'(^[A-Z])|([IJ])|(?<= ).','') FROM "SYSIBM".SYSDUMMY1

结果:ené e a mer-Arie sbrand sse

然而,我想达到相反的结果:

RdlÖIJIJ

如果我尝试 regexp_substr 等价物,它不会给我想要的结果:

select  REGEXP_SUBSTR( 'René de la Ömer-Arie IJsbrand IJsse'
                  ,'(^[A-Z])|([IJ])|(?<= ).') FROM "SYSIBM".SYSDUMMY1

结果:R

有没有办法在使用(或不使用)regexp_substr 的情况下实现结果“RdlÖIJIJ”?

您可以匹配除 IJ 以外的字符,同时在左侧声明非空白字符,并替换为空字符串。

(?<=\S)[^IJ]

Regex demo