반응형
MariaDB PCRE 정규 표현 문제
Devanagari 언어로 다양한 문자를 조회하고 싶습니다.사용하는 경우
SELECT count(`dev`) FROM `transliteration` WHERE `dev` REGEXP 'क़';
71의 카운트를 반환합니다.단, 유니코드 참조를 통해 문의할 수 있도록 하기 위해 다음과 같은 방법이 필요합니다.
SELECT count(`dev`) FROM `transliteration` WHERE `dev` REGEXP '[\\x{958}]';
MariaDB는 PCRE를 지원하므로 지금까지 성공하지 못해도 할 수 있을 것입니다.나는 심지어 서류를 읽었지만 소용이 없었다.16진수 이상이면 반복하고 싶은 것처럼 곱슬곱슬한 괄호 안의 숫자를 처리하는 것 같습니다.유니코드에는 두 자리 이상의 문자가 있습니다!
말씀드린 바와 같이 범위를 문의하고 싶습니다.[\x{0958}-\x{095E}]
). 하지만 중요한 것부터 먼저.
시스템 전체에서 utf8 인코딩을 사용하고 있다고 가정하면,
다음과 같이 동작할 수 있습니다.
SELECT 'क़ज़फ़' REGEXP '^[क़-फ़]+$';
(테스트 환경에서 동작합니다.)
그렇지 않은 경우 REGEXP를 구축해야 할 수 있습니다.다음은 utf8과 Unicode 사이에서 변환하는 방법입니다.
SELECT CONVERT(UNHEX('0958') USING ucs2); --> क़
SELECT HEX(CONVERT('क़' USING ucs2)) --> 0958
언급URL : https://stackoverflow.com/questions/32023433/mariadb-pcre-regular-expression-issue
반응형
'source' 카테고리의 다른 글
Python에서 환경변수에 액세스하려면 어떻게 해야 합니까? (0) | 2022.09.16 |
---|---|
PHP에서 SFTP를 사용하는 방법 (0) | 2022.09.16 |
지정된 html 문자열에서 선행 및 후행 공백을 제거하려면 어떻게 해야 합니까? (0) | 2022.09.16 |
계산된 속성 업데이트 후 함수를 실행하는 가장 좋은 방법 (0) | 2022.09.16 |
.class 파일을 컴파일하는 데 사용되는 jdk 버전을 확인하는 방법 (0) | 2022.09.16 |