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

在HIVE中使用正则表达式提取并掩码字符串中的手机号码

解答

1. 使用regexp_replace实现号码掩码替换

你可以直接调用regexp_replace函数完成替换操作,函数语法为regexp_replace(原字符串, 匹配正则规则, 替换后的内容),如果要将匹配到的号码替换为加粗斜体的Mobile number,纯数字号码的替换示例如下:

SELECT regexp_replace('You can also connect with me on this number 99XXXXXXXX', '[0-9]+', '***Mobile number***');

2. 匹配包含空格、特殊符号的电话号码正则

如果需要匹配类似(+123) 456 789这类包含加号、括号、空格的电话号码,可以根据格式严格程度选择对应的正则:

  • 严格匹配(+数字) 数字 数字格式的正则:\(\+[0-9]+\) [0-9]+ [0-9]+,注意SQL环境下反斜杠需要转义,要写为\\(\\+[0-9]+\\) [0-9]+ [0-9]+
  • 通用匹配包含数字、空格、+、()的任意电话号码串的正则:[+()0-9 ]+,如果要避免匹配到零散的数字符号,可以补充前后边界判断,写成(?<![0-9])[+()0-9 ]+(?![0-9])

对应你的示例字符串的完整替换代码如下:

SELECT regexp_replace('You can also connect with me on this number (+123) 456 789.', '\\(\\+[0-9]+\\) [0-9]+ [0-9]+', '***Mobile number***');

执行后输出结果为:You can also connect with me on this number ***Mobile number***.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:54:06