ホームページ >データベース >mysql チュートリアル >MySQL の正規表現でキャプチャ グループを参照するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。