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

SQL regexp_replace去除Dr.无效,去除Pfarrer正常的原因咨询

为什么regexp_replace处理Dr.前缀不生效但Pfarrer可以?

核心原因是单词边界\b的匹配规则限制:

  • \b仅在「单词字符(字母、数字、下划线)」与「非单词字符」的交界位置触发匹配。
  • 对于Pfarrer Anna:Pfarrer的最后一个字符r是单词字符,后面的空格是非单词字符,完全符合\b的匹配条件,所以\bPfarrer\b能精准定位到前缀并替换。
  • 对于Dr. Anna:Dr.里的.属于非单词字符,它后面的空格同样是非单词字符,两者之间没有\b的匹配边界,导致\bDr.\b里的末尾\b无法匹配到Dr.后的位置,替换自然失效。

可行的解决办法

  • 直接锚定字符串开头,匹配Dr.加空格:
    regexp_replace(trim(firstname), '^Dr\. ', '')
    
  • 去掉末尾的\b,用Dr.本身作为匹配目标:
    regexp_replace(trim(firstname), '\bDr\.', '')
    
  • 如果需要兼容多种带点的前缀(如Prof., Mr.等),可以用更通用的正则:
    regexp_replace(trim(firstname), '^\w+\.\s', '')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 16:05:25