【问题标题】:Replace European chars using REGX_EXP in DB2在 DB2 中使用 REGX_EXP 替换欧洲字符
【发布时间】:2020-07-19 16:59:54
【问题描述】:

我必须用 DB2 中电子邮件 ID 中的 '@' 替换欧洲(特殊)字符。 字符- §、Ö、Ã、У、ί、Ξ、Þ

样本数据:- 电子邮件ID

adb@yu.com
ads§mnm.com
vbnÖss.com
ddУrr.com
weίsd.com
ftΞvg.com

我想要这样的输出:-

adb@yu.com
ads@mnm.com
vbn@ss.com
dd@rr.com
we@sd.com`
ft@vg.com

我试过这样- regexp_replace(emailid,'§|Ö|Ã|У|ί|Ξ|Þ','@') 但它不起作用,对于 У,ί,Ξ 这 3 个字符并且给出错误 regx_exp 无效。

您能帮我如何替换 DB2 中 emailid 列中的所有 3 个字符。

【问题讨论】:

  • 您的 Db2 版本和平台是什么? following 在 Db2 11.1 上运行良好。
  • AS400,它不工作
  • 它适用于我的 7.4。让您的管理员检查是否安装了 Unicode 国际组件 (ICU) 选项(这是先决条件)。如果仍然无法正常工作,请向 IBM 支持提出案例。
  • 您可以使用更强大的解决方案,方法是提供要保留的字符的确切列表并使用 ^ 反转它:regexp_replace(emailid,'[^a-zA-Z.]+','@')

标签: regex db2 ibm-midrange informatica db2-400


【解决方案1】:

您需要匹配以下模式并替换为@

模式

[^\w.]

说明

  • [^ 匹配一个不在此字符集中的字符 (^)
    • \w字字符包括A-Za-z0-9
    • .字面句号,不需要转义,在集合中
  • ]字符集结束

查看演示 here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多