# **REGEXP\_REPLACE**

替换字符串中与正则表达式匹配的子字符串。

## 语法{#grammar}

REGEXP\_REPLACE(**str**, **pattern**, **replacement**)

- **str**：需要被替换的字符串对象
- **pattern**：一个用于匹配字符串的正则表达式，正则表达式中的`\`需要连续输入2个，第一个`\`表示转义。[正则表达式的语法参考](https://www.runoob.com/regexp/regexp-intro.html)
- **replacement**：替换 pattern 的子串

**示例地址：** [REGEXP\_REPLACE](https://demo.succbi.com/v5/bi/regexp_replace)

## 示例{#example}

1. `REGEXP_REPLACE("abc123", "[0-9]", "-")` 将数字替换成减号，返回字符串`abc---`
2. `REGEXP_REPLACE("abc123","[a-z]","-")` 将字母替换为减号，返回字符串`---123`
3. `REGEXP_REPLACE("abca","ab","-")` 参数为字母字符，返回字符串`-ca`
4. `REGEXP_REPLACE("abc123", "[^\\d]+", "")` 将非数字字母去除，返回字符串`123`
5. `REGEXP_REPLACE("一二三一","一二","-")` 参数为中文字符，返回字符串`-三一`
6. `REGEXP_REPLACE("备 刘", "(\\S+)\\s(\\S+)", "$2$1")` 将英文格式的人名改成中文格式，返回字符串`刘备`
7. `REGEXP_REPLACE('12345678','(\\d)(?=(\\d{3})+$)','$1,')` 数字加上千分符，返回字符串`12,345,678`
8. `REGEXP_REPLACE('+86 13856427896','(\\+[0-9]{2})( )([0-9]{3})([0-9]{4})([0-9]{4})','($1)$3-$4-$5')` 手机号格式化，返回字符串`(+86)138-5642-7896`
9. `REGEXP_REPLACE('6226090219298748','([0-9]{4})([0-9]{4})([0-9]{4})([0-9]{4})','$1 $2 $3 $4')` 银行卡号用空格分开，返回字符串`6226 0902 1929 8748`
10. `REGEXP_REPLACE('20210510','([0-9]{4})([0-9]{2})([0-9]{2})','$1年$2月$3日')` 日期格式替换，返回字符串`2021年05月10日`
11. `REGEXP_REPLACE('12ab_A','[0-9A-Za-z_]','*')` 数据加密，返回字符串`******`
12. `REGEXP_REPLACE('12\n34','\n','')` 删除转义字符，返回字符串`1234`
13. `REGEXP_REPLACE([门店销售明细表].[导购员].[员工姓名],'刘宏雨','刘 宏雨')` 引用数据模型，员工姓和名用空格隔开，返回字符串`刘 宏雨`
