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

Oracle 11g中嵌套正则表达式处理姓名格式问题求助

Oracle 11g姓名数据正则替换解决方案

针对你遇到的Nancy (Alice)转换为Nancy Alice时出现双空格的问题,可使用以下正则表达式解决:

SELECT REGEXP_REPLACE(your_name_column, '\s*\((.*?)\)\s*', ' \1') AS formatted_name
FROM your_table;

逻辑说明:

  • \s*:匹配括号前后的零个或多个空格,避免替换后出现多余空格
  • \(和\):转义匹配括号本身
  • (.*?):非贪婪匹配括号内的姓名内容(确保只匹配到第一个右括号,避免多括号场景出错)
  • 替换为 \1:用单个空格加括号内的内容替换匹配到的整体,保证姓名间只有一个空格

测试示例:

  • 原数据:Nancy (Alice) → 转换后:Nancy Alice
  • 原数据:Nancy (Alice) → 转换后:Nancy Alice
  • 原数据:John (Michael) (Brown) → 转换后:John Michael Brown

如果你的场景中括号内只有单个姓名部分,也可以简化为更高效的写法(但非贪婪匹配兼容性更强):

SELECT REGEXP_REPLACE(your_name_column, '\s*\(([^)]+)\)\s*', ' \1') AS formatted_name
FROM your_table;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 21:42:50