itsource

RegExp를 사용하는 문자열에서 SQL 추출 패턴

mycopycode 2022. 11. 14. 21:39
반응형

RegExp를 사용하는 문자열에서 SQL 추출 패턴

현재 MySQL을 사용하여 문자열에서 패턴을 추출하려고 하는데 아쉽게도 원하는 결과를 얻지 못했습니다.그래서 저는 당신의 지원을 받고 싶습니다.

문자열은 다음과 같습니다.

AB3530A/AB476-1

이 부분만 추출합니다.

AB476

이미 다음 RegExp를 시도했습니다.

[A-Z]{2}[0-9]{3}

반환된 항목

AB476-

저도 시도했습니다.

[A-Z]{2}[0-9]{3}([^0-9]|$) 

그것은 돌아왔다AB353그리고.AB476http://regexr.com/에 있지만 반환만 가능합니다.AB353MariaDB에 있습니다.

추가 표시 없이 추출만 할 줄 아는 사람 있나요?

잘 부탁드립니다.

안부 전합니다

링크는 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

반응형