You need to enable JavaScript to run this app. 如何编写正则表达式替换两个连字符之间的任意类型字符
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则表达式替换两个连字符之间的任意类型字符

适配全字符场景的正则写法

你只需要将原来匹配大写字母的规则替换为匹配除分隔符-之外的所有字符即可,兼容所有数字、空格、特殊字符、德语变音字符等场景,代码如下:

select regexp_replace('002 - KLAMPFER - Sy 52-5-5+L', '- [^-]* -', '- XXXXXXX -')
  from dual;

规则说明

  • [^-]匹配除减号-之外的所有字符,自动覆盖全类型字符
  • 该规则不依赖惰性匹配特性,适配绝大多数支持regexp_replace的SQL方言(如Oracle、PostgreSQL等),匹配时只会匹配两个-分隔符之间的内容,不会错误吞掉后续的减号内容

测试示例

如果输入包含德语特殊字符、数字、特殊符号:

select regexp_replace('002 - Müller 123!@# 测试 - Sy 52-5-5+L', '- [^-]* -', '- XXXXXXX -')
  from dual;

输出结果:

002 - XXXXXXX - Sy 52-5-5+L

内容的提问来源于stack exchange,提问作者user2795318

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 15:54:08