首頁 > 資料庫 > mysql教程 > 如何在MySQL的正規表示式中引用捕獲組?

如何在MySQL的正規表示式中引用捕獲組?

Barbara Streisand
發布: 2024-11-04 00:45:03
原創
731 人瀏覽過

How to Reference Capture Groups in MySQL's Regular Expressions?

在MySQL 的正則表達式中引用捕獲組

MySQL 提供全面的正則表達式支持,包括捕獲和重用匹配模式的部分的能力。但是,捕獲和引用組與其他正規表示式實作略有不同。

在提供的範例中,REGEXP '^(.)1$' 嘗試匹配緊接著重複的字元。不幸的是,它在 MySQL 中不起作用,因為本機不支援捕獲組。

MySQL 8 的解決方案

MySQL 8 引入了 REGEXP_REPLACE 函數,該函數支援捕獲組。若要引用捕獲組,請使用 $n,其中 n 是捕獲組的索引(從 1 開始)。例如:

SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)','');
-- Result: "overflowstack"
登入後複製

在上面的範例中,第一個擷取組 ((.{5})) 與前五個字元(堆疊)相符。第二個捕獲組 ((.*)) 與其餘字元相符(溢出)。然後它們在替換字串中進行交換。

MariaDB 的解決方案

MariaDB 是 MySQL 的一個分支,也支援正規表示式中的捕獲組,但採用不同的方法。它使用 \n 來引用 REGEXP_REPLACE 中的捕獲組:

SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)','\2\1');
-- Result: "overflowstack"
登入後複製

以上是如何在MySQL的正規表示式中引用捕獲組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板