# REGEXP\_REPLACE

将给定字符串中与正则表达式模式匹配的子字符串的每个实例替换为指定的替换内容。

## 语法

```
REGEXP_REPLACE(STRING, PATTERN, REPLACEMENT)
```

## 参数

#### STRING

类型：`string`

搜索`PATTERN`匹配项的字符串。

#### PATTERN

类型：`string`

正则表达式模式。

此模式必须是Java正则表达式。字符串字面量未转义。例如，要匹配`'\abc'`，正则表达式应为`'^\\abc$'`。

有关详细信息，请参阅[正则表达式模式表](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/regular-expressions/regular-expressions.htm#regular-expression-patterns)。

#### REPLACEMENT

类型：`string`

用于替换在`STRING`中找到的`PATTERN`实例的字符串。

可以在`REPLACEMENT`中引用[捕获组](http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html#cg)，其中`$g`用于编号组，`${name}`用于命名组。美元符号 (`$`) 可以通过使用反斜杠 (`\$`) 进行转义来包含在替换中：

## 返回

类型：`string`

`STRING`，其中由正则表达式 `PATTERN` 匹配到的每个子字符串实例都替换为 `REPLACEMENT`。

***

## 示例

| STRING | 模式 | 替换 | 输出 |
| --- | --- | --- | --- |
| 你好世界 | w | W | 你好世界 |
| 你好世界 | o | 0 | Hell0 世界 |
| Bond, James | (\w+)\W+(\w+) | The names $1. $2 $1. | 名字是邦德。詹姆斯·邦德。 |
| 你好世界！ | ! | `''` | 你好世界 |
| 你好 xxWorld | x | `''` | 你好世界 |
| 你好l世界 | l(?= ) | `''` | 你好世界 |
| 你好l世界 | l(?![lod]) | `''` | 你好世界 |
| 你好世界 | (?&lt;=o)o | `''` | 你好世界 |
| 你好世界W | (?&lt;! )W | `''` | 你好世界 |
| `null` | '(?&lt;! )W | `''` | `null` |