

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# RLIKE
<a name="RLIKE"></a>

RLIKE 运算符允许您检查字符串是否与指定的正则表达式模式匹配。

`true`如果 str 匹配则返回`regexp`，`false`否则返回。

## 语法
<a name="RLIKE-syntax"></a>

```
rlike(str, regexp)
```

## Arguments
<a name="RLIKE-arguments"></a>

 *str*   
字符串表达式

 *regexp*   
字符串表达式。正则表达式字符串应为 Java 正则表达式。  
字符串文字（包括正则表达式模式）在我们的 SQL 解析器中是未转义的。例如，要匹配 “\$1 abc”，正则表达式的正则*表达式*可以是 “^\$1 abc\$1”。

## 示例
<a name="RLIKE-examples"></a>

以下示例将`spark.sql.parser.escapedStringLiterals`配置参数的值设置为`true`。此参数特定于 Spark SQL 引擎。Spark SQL 中的`spark.sql.parser.escapedStringLiterals`参数控制 SQL 解析器如何处理转义的字符串文字。设置为时`true`，解析器会将字符串文字中的反斜杠字符 (`\`) 解释为转义字符，从而允许您在字符串值中包含特殊字符，例如换行符、制表符和引号。

```
SET spark.sql.parser.escapedStringLiterals=true;
spark.sql.parser.escapedStringLiterals  true
```

例如，使用`spark.sql.parser.escapedStringLiterals=true`，您可以在 SQL 查询中使用以下字符串文字：

```
SELECT 'Hello, world!\n'
```

换行符`\n`将在输出中解释为字面换行符。

以下示例执行正则表达式模式匹配。第一个参数传递给 RLIKE 运算符。它是一个表示文件路径的字符串，其中实际的用户名被替换为'\$1\$1\$1\$1'模式。第二个参数是用于匹配的正则表达式模式。输出 (`true`) 表示第一个字符串 (`'%SystemDrive%\Users\****'`) 与正则表达式模式 (`'%SystemDrive%\\Users.*'`) 匹配。

```
SELECT rlike('%SystemDrive%\Users\John', '%SystemDrive%\Users.*');
true
```