MySQL regex에서 캡처 그룹을 어떻게 참조합니까?
MySQL에서 regex를 사용하여 그룹을 참조하는 방법은 무엇입니까?노력했습니다.
REGEXP '^(.)\1$'
하지만 작동하지 않습니다.이거 어떻게 해요?
(오래된 질문이지만 상위 검색 결과)
MySQL 8의 경우:
SELECT REGEXP_REPLACE('stackoverflow','(.{5})(.*)','$2$1');
-- "overflowstack"
다음을 사용하여 캡처 그룹을 만들 수 있습니다.()
, 그리고 당신은 그들이 사용하는 것을 참조할 수 있습니다.$1
,$2
,기타.
MariaDB의 경우 캡처는 REGEXP_REPLATE with에서 수행됩니다.\\1
,\\2
, 등이 각각.
그럴 수 없습니다. MySql에는 정규분포 캡쳐 그룹을 참조할 수 있는 방법이 없습니다.
함수 호출을 쿼리에 내포하여 이 문제를 해결할 수 있습니다.열에 이 문자열이 있다고 가정합니다.
'100 SOME ST,THE VILLAGES,FL 32163,USA'
도시 이름을 캡처하고 싶겠죠MySQL에서 지원하는 경우 이와 같은 캡처 그룹이 작동합니다(그러나 그렇지 않습니다).
'^[0-9A-Z\s]+,\s*([a-zA-Z\s]*)'
함수 호출을 네스트하여 원하지 않는 부분을 떼어낸 다음 원하는 부분을 다음과 같이 잡을 수 있습니다.
SELECT REGEXP_SUBSTR(REGEXP_REPLACE(column_name, '^[0-9\\sA-Z]+,', ''), '^[0-9\\sA-Z]+') FROM table_name;
빌리지들
...
오래된 질문인데, 검색해보니 답이 나왔어요.Rlike는 백레퍼런스와 함께 사용할 수 있습니다.MySQL 5.7에서 테스트됨
#replace 'aa' with column name
SELECT 'aa' RLIKE '^(.)\1$';
언급URL : https://stackoverflow.com/questions/7058209/how-do-i-refer-to-capture-groups-in-a-mysql-regex
'programing' 카테고리의 다른 글
어린이를 조롱하는 구성 요소 - 각도 2 (0) | 2023.09.14 |
---|---|
SQL - Union of Selects inside Where...인절 (0) | 2023.09.14 |
관리자가 로그인한 후 우커머스가 재정의되지 않음 (0) | 2023.09.14 |
WordPress로 NextJS에서 네비게이션 메뉴를 관리하는 방법 (0) | 2023.09.14 |
Query only parent pages in custom post type within loop (0) | 2023.09.13 |