

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

RLIKE 運算子可讓您檢查字串是否符合指定的規則表達式模式。

`true` 如果 str 符合 `regexp`，`false`否則傳回 。

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

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

## 引數
<a name="RLIKE-arguments"></a>

 *str*   
字串表達式

 *regexp*   
字串表達式。regex 字串應該是 Java 規則表達式。  
SQL 剖析器中不會逸出字串常值 （包括 regex 模式）。例如，若要符合 "\$1abc"，*regexp* 的規則表達式可以是 "^\$1abc\$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
```