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 중국어 웹사이트의 기타 관련 기사를 참조하세요!