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

Oracle PL/SQL正则表达式:去除姓氏后缀需求实现

Oracle PL/SQL 正则表达式移除姓氏指定后缀

需求说明

编写Oracle PL/SQL正则表达式,移除姓氏末尾的指定后缀,后缀列表(含中英文对应):

  • JR(小)
  • SR(老)
  • I(一世)
  • II(二世)
  • III(三世)
  • IV(四世)
  • V(五世)

处理规则:

  • 后缀前允许存在任意非字母分隔符(空格、逗号、斜杠等)
  • 后缀可带可选的点号(如JR.)
  • 若末尾字符不在后缀列表中,则保留(如示例中的S)

核心实现

使用Oracle内置的REGEXP_REPLACE函数,通过正则匹配并替换目标后缀:

REGEXP_REPLACE(
    input_column, -- 输入的姓氏字符串列或变量
    '\s*[,\s/]*\b(JR|SR|I{1,3}|IV|V)\b\.?\s*$',
    '',
    1,
    0,
    'i'
)

正则表达式详解

  • \s*:匹配后缀前的零个或多个空白字符
  • [,\s/]*:匹配零个或多个分隔符(支持逗号、空格、斜杠,可按需扩展)
  • \b:单词边界,确保匹配完整后缀,避免误匹配长单词中的子串
  • (JR|SR|I{1,3}|IV|V):匹配所有预定义后缀,I{1,3}简化匹配I、II、III
  • \.?:匹配后缀可能附带的点号(如JR.)
  • \s*$:匹配字符串末尾的零个或多个空白字符
  • 'i':不区分大小写,兼容jr、Sr等大小写变体(如需严格区分,移除该参数)

测试示例

输入字符串处理后输出
SMITHSMITH
SMITH JR.SMITH
SMITH ,JRSMITH
SMITH JR ISMITH
SMITH /SRSMITH
SMITH SSMITH S

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 20:11:09