1、连续2词汉字重复或3词汉字重复(不会忽略符号)
([^ \u4e00-\u9fa5\S]{2,3})\1
例如:阿富、
SELECT REGEXP_replace('阿富、阿富、 阿富汗、 ', '([^ \u4e00-\u9fa5\S]{2,3})\1', '重复') FROM dual
结果:
2、连续2词汉字重复或3词汉字重复(忽略符号,只匹配汉字)
(使用 ASCII 范围来排除非汉字字符。请注意,这个方法可能不如 Unicode 属性精确,但在 Oracle 11g 中可能是一个可行的替代方案)
([^ '||UNISTR('\3400-\4DBF\20000-\2A6DF\2A700-\2B73F\2B740-\2B81F\2B820-\2CEAF\2CEB0-\2EBEF')||']{2,3})\1
例如:
SELECT REGEXP_replace('阿富、阿富、汗、', '([^ '||UNISTR('\3400-\4DBF\20000-\2A6DF\2A700-\2B73F\2B740-\2B81F\2B820-\2CEAF\2CEB0-\2EBEF')||']{2,3})\1', '重复') FROM dual
结果:
。