You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在REGEXP_REPLACE模式中添加方括号并保留[XXX]格式?

解决REGEXP_REPLACE中添加方括号的问题

针对你要把__XXXX__格式替换为[XXXX]的需求,直接在替换字符串里使用方括号即可,无需额外转义。以下是不同环境下的具体实现:

常见SQL数据库示例

MySQL / PostgreSQL

SELECT REGEXP_REPLACE('MSD_40001_ME_SPE__XXXX__Technical__Specification_REV9_(2021_05_27)_xls', '__([^_]+)__', '[$1]');

Oracle

SELECT REGEXP_REPLACE('MSD_40001_ME_SPE__XXXX__Technical__Specification_REV9_(2021_05_27)_xls', '__([^_]+)__', '[$1]') FROM DUAL;

关键说明

  • 模式__([^_]+)__:匹配两个下划线包裹的内容,([^_]+)捕获中间的非下划线字符(如果你的XXXX包含下划线,可改用(.+?)做非贪婪匹配)。
  • 替换字符串[$1]:直接用方括号包裹捕获到的分组内容,这里方括号是普通字符,不需要加转义符\——你之前转义无效就是因为多此一举了。

额外情况:如果需要在正则模式里匹配方括号

要是后续需要在正则的字符集(方括号内)里匹配方括号本身,不同引擎的写法略有区别:

  • 多数引擎支持直接写[\[\]]来匹配左/右方括号;
  • MySQL里也可以用[[]匹配左方括号,[]]匹配右方括号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:35:40