MySQL で正規表現を使用する場合、キャプチャ グループを参照する方法を理解することが重要です。キャプチャ グループを使用すると、文字列内の特定のパターンを照合して抽出できます。
質問では、ユーザーは式 REGEXP '^ を使用して繰り返し文字をキャプチャしようとしています。 (.)1$'。ただし、この試行ではキャプチャされたグループを正しく参照できません。
MySQL 8 以降では、$1、$2 などを使用してキャプチャ グループを参照できます。次の式は、パターンを正常にキャプチャして置換します。
SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)',''); -- "overflowstack"
ここで、(.{5}) は 5 文字のシーケンスをキャプチャし、(.*) は残りの文字をキャプチャします。結果は、キャプチャされたグループを交換した文字列「overflowstack」です。
MariaDB の場合、キャプチャ グループの参照には \1、\2 などが使用されます。
SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)','\2\1'); -- "overflowstack"
キャプチャ グループを覚えておいてください。文字列の特定のセクションをターゲットにできるため、MySQL クエリでのパターン マッチングと操作の柔軟性が向上します。
以上がMySQL 正規表現でキャプチャ グループを参照するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。