>  기사  >  데이터 베이스  >  MySQL은 정규식을 어떻게 사용합니까? (코드 예)

MySQL은 정규식을 어떻게 사용합니까? (코드 예)

青灯夜游
青灯夜游원래의
2019-01-12 13:27:0110651검색

MySQL은 정규식 및 정규식 연산자를 기반으로 하는 또 다른 패턴 일치 작업을 지원합니다. 다음 글에서는 MySQL의 정규식(Regexp)에 대해 소개하고, 예제를 통해 MySQL에서 정규식(Regexp)을 사용하는 방법을 간략하게 소개하겠습니다.

MySQL은 정규식을 어떻게 사용합니까? (코드 예)

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 사이의 숫자와 일치합니다.
[[:e6dd76d1447af51f35445b4a158631fc:]] 단어 끝을 일치시킵니다.
[: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 &#39;[[:<:]]for&#39;;

10. 문자 클래스 일치 [:class:]:

ie [:lower:] - 소문자, [:digit:] - 숫자 등

제목 필드에 알파벳 문자만 포함된 모든 데이터를 일치시킵니다(예: stranger things, Avengers).

SELECT title FROM movies_tbl WHERE REGEXP &#39;[:alpha:]&#39; ;

위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !

위 내용은 MySQL은 정규식을 어떻게 사용합니까? (코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.