RegExp를 사용하는 문자열에서 SQL 추출 패턴
현재 MySQL을 사용하여 문자열에서 패턴을 추출하려고 하는데 아쉽게도 원하는 결과를 얻지 못했습니다.그래서 저는 당신의 지원을 받고 싶습니다.
문자열은 다음과 같습니다.
AB3530A/AB476-1
이 부분만 추출합니다.
AB476
이미 다음 RegExp를 시도했습니다.
[A-Z]{2}[0-9]{3}
반환된 항목
AB476-
저도 시도했습니다.
[A-Z]{2}[0-9]{3}([^0-9]|$)
그것은 돌아왔다AB353
그리고.AB476
http://regexr.com/에 있지만 반환만 가능합니다.AB353
MariaDB에 있습니다.
추가 표시 없이 추출만 할 줄 아는 사람 있나요?
잘 부탁드립니다.
안부 전합니다
이 링크는 MariaDB가 버전 10.0.5 이후 Perl 호환 regexp("PCRE")를 지원함을 나타냅니다.
그러면 이 구성이 작동해야 합니다.SELECT REGEXP_SUBSTR(
your_string(스트링), '\\b[A-Z]{2}\\d{3}\\b');
.
(\b
'단어 경계'입니다.)
SELECT REGEXP_SUBSTR('AB3530A/AB476-1','\\b[A-Z]{2}\\d{3}\\b');
돌아와야 한다'AB476'
주의: 대신[A-Z]
ASCII 문자만 사용할 수 있습니다.\\p{Lu}
이는 "Unicode에 의해 문자로 태그된 모든 문자, 대문자만"을 의미합니다.하지만 내 생각엔[A-Z]
당신 경우엔 충분할 겁니다
쇼트 다이브!
Regex 대신 다음을 시도해 보십시오.
SELECT SUBSTR('AB3530A/AB476-1',9,5) constant_length
, SUBSTRING_INDEX(SUBSTRING_INDEX('AB3530A/AB476-1','/',-1),'-',1) variable_length
언급URL : https://stackoverflow.com/questions/41286217/sql-extract-pattern-from-string-with-regexp
'itsource' 카테고리의 다른 글
Larabel 5 – URL에서 공개 삭제 (0) | 2022.11.14 |
---|---|
파일 확장자는 어떻게 확인할 수 있나요? (0) | 2022.11.14 |
in_array 다중값 (0) | 2022.11.14 |
MySQL에서 사용 가능한 다음 ID 찾기 (0) | 2022.11.14 |
부분 및 템플릿의 복잡한 중첩 (0) | 2022.11.14 |