MySQL은 정규식 및 정규식 연산자를 기반으로 하는 또 다른 패턴 일치 작업을 지원합니다. 다음 글에서는 MySQL의 정규식(Regexp)에 대해 소개하고, 예제를 통해 MySQL에서 정규식(Regexp)을 사용하는 방법을 간략하게 소개하겠습니다.
MySQL 정규 표현식(Regexp)에 대한 간략한 소개
1 데이터베이스 시스템을 위한 강력한 검색 유틸리티를 구현하는 데 도움이 될 수 있는 강력하고 유연한 일치 패턴을 제공합니다.
2. regexp는 정규식 패턴 일치를 수행할 때 사용되는 연산자이고 rlike는 동의어입니다.
3. 또한 패턴 일치를 수행할 때 더 큰 유연성과 제어를 제공하는 많은 메타 문자를 지원합니다.
4. 백슬래시는 이스케이프 문자로 사용됩니다. 이중 백슬래시가 사용되는 경우 패턴 일치에서만 고려됩니다.
5. 대소문자를 구분하지 않습니다.
다음은 REGEXP 연산자와 함께 사용할 수 있는 정규 패턴 표입니다. 【추천 관련 동영상 튜토리얼: MySQL 동영상 튜토리얼】
Pattern | 설명(구체적으로 일치시킬 항목) | ||||
^ | 일치하는 문자열의 시작 위치입니다. | ||||
$ | 문자열의 끝 위치와 일치합니다. | ||||
. | 은 "n"을 제외한 모든 단일 문자와 일치합니다. | ||||
[...] | 은 포함된 문자 중 하나와 일치합니다. | ||||
[^...] | 은 포함되지 않은 모든 문자와 일치합니다. | ||||
? | 은 앞에 있는 0개 또는 1개의 하위 표현식(문자열)과 일치합니다. | ||||
* | 은 앞에 오는 0개 이상의 하위 표현식(문자열)과 일치합니다. | ||||
+ | 은 그 앞에 있는 하나 이상의 하위 표현식(문자열)과 일치합니다. | ||||
[abc] | 은 대괄호 안에 나열된 모든 문자와 일치합니다. | ||||
[^abc] | 은 대괄호 사이에 나열되지 않은 모든 문자와 일치합니다. | ||||
[A-Z] | 은 모든 대문자와 일치합니다. | ||||
[a-z] | 은 모든 소문자와 일치합니다. | ||||
[0-9] | 은 0에서 9 사이의 숫자와 일치합니다. | ||||
[[:<:]] | 은 단어의 시작과 일치합니다. | ||||
[[:>:]] | 단어 끝을 일치시킵니다. | ||||
[:class:] | 는 문자 클래스와 일치합니다. 즉, [:alpha:]는 문자와 일치하고, [:space:]는 공백과 일치하고, [:punct:]는 구두점과 일치하고, [:upper:]는 대문자와 일치합니다. 편지. | ||||
p1|p2|p3 | 모든 패턴과 일치합니다(p1, p2 또는 p3 | ||||
{n} | n | ||||
{m,n} | 이 m보다 앞선 요소의 하위 표현식과 일치함). 이전 요소에 대한 n 하위 표현식 |
사용 예:
다음은 간단한 예를 사용하여 MySQL 정규 표현식(Regexp)의 사용을 소개합니다.
1. 문자열 시작 부분 일치(^):
이름 필드가 'sa'로 시작하는 모든 데이터와 일치합니다(예: Sample-sam, samarth).
SELECT name FROM student_tbl WHERE name REGEXP '^sa';
2. 문자열 끝($) 일치:
이름 필드가 'on'으로 끝나는 모든 데이터를 일치시킵니다(예: norton, merton).
SELECT name FROM student_tbl WHERE name REGEXP 'on$';
3. 앞의 문자열에서 0개 또는 1개의 하위 표현식(?)을 일치시킵니다.
제목 필드에 'com'이 포함된 모든 데이터를 일치시킵니다(예: 코미디, 로맨틱 코미디).
SELECT title FROM movies_tbl WHERE title REGEXP 'com?';
4. p1, p2 또는 p3 패턴 일치(p1 | p2 | p3):
이름 필드에 'be' 또는 'ae'가 포함된 모든 데이터를 일치시킵니다(예: Abel, Baer).
SELECT name FROM student_tbl WHERE REGEXP 'be|ae' ;
5. 대괄호([abc]) 사이에 나열된 모든 문자를 일치시킵니다.
이름 필드에 'j' 또는 'z'가 포함된 모든 데이터를 일치시킵니다(예: Lorentz, Rajs).
SELECT name FROM student_tbl WHERE REGEXP '[jz]' ;
6. 'a'와 'z' 사이의 단일 소문자([a-z])([a-z] 및 (.))를 일치시킵니다.
이름 필드에서 "b"가 포함된 첫 번째 숫자를 일치시키고 "g" 범위의 문자, 두 번째 숫자에는 임의의 문자가 포함되고, 세 번째 숫자에는 문자 'a'의 모든 문자열 데이터가 포함됩니다(예: Tobias, sewall).
단일 문자와 일치합니다(.)
SELECT name FROM student_tbl WHERE REGEXP '[b-g].[a]' ;
7. 대괄호([^ abc]) 사이에 나열되지 않은 모든 문자와 일치합니다.
'j' 또는 'z'를 포함하지 않는 모든 이름과 일치합니다. 예: nerton, sewall.
SELECT name FROM student_tbl WHERE REGEXP '[^jz]' ;
8. 단어 끝에 있는 하위 문자열을 일치시킵니다. [[:>:]]
제목 필드에서 "ack" 문자로 끝나는 모든 데이터를 일치시킵니다(예: Black).
SELECT title FROM movies_tbl WHERE REGEXP 'ack[[:>:]]';
9. 단어 시작 부분의 하위 문자열을 일치시킵니다. [[:<:]]
제목 필드에서 문자 "for"로 시작하는 모든 데이터를 일치시킵니다(예: Forgetting Sarah Marshal).
SELECT title FROM movies_tbl WHERE title REGEXP '[[:<:]]for';
10. 문자 클래스 일치 [:class:]:
ie [:lower:] - 소문자, [:digit:] - 숫자 등
제목 필드에 알파벳 문자만 포함된 모든 데이터를 일치시킵니다(예: stranger things, Avengers).
SELECT title FROM movies_tbl WHERE REGEXP '[:alpha:]' ;
위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !
위 내용은 MySQL은 정규식을 어떻게 사용합니까? (코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!