ホームページ >データベース >mysql チュートリアル >MySQL の正規表現でキャプチャ グループを参照するにはどうすればよいですか?

MySQL の正規表現でキャプチャ グループを参照するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-04 00:45:03729ブラウズ

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})) は最初の 5 文字 (スタック) と一致します。 2 番目のキャプチャ グループ ((.*)) は残りの文字と一致します (オーバーフロー)。

MariaDB のソリューション

MySQL のフォークである MariaDB も、正規表現でのキャプチャ グループをサポートしていますが、アプローチが異なります。 \n を使用して REGEXP_REPLACE:

SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)','\2\1');
-- Result: "overflowstack"
のキャプチャ グループを参照します。

以上がMySQL の正規表現でキャプチャ グループを参照するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。