정규 표현식은 문자열에 대한 규칙을 정의합니다. 가장 간단한 정규식에는 예약어가 포함되어 있지 않습니다. 예를 들어 정규식 hello는 "hello" 문자열과만 일치합니다.
일반 정규식은 특정 특수 구조를 사용하므로 더 많은 문자열과 일치할 수 있습니다. 예를 들어 정규식 hello|word는 "hello" 문자열과 "word" 문자열을 모두 일치시킬 수 있습니다.좀 더 복잡한 예를 들자면, 정규식 b[an]*s는 문자열 "bananas", "baaaaas", "bs" 및 b로 시작하고 s로 끝나는 기타 모든 문자열과 일치할 수 있으며 원하는 수의 문자를 포함할 수 있습니다. 중간에 a와 n의 조합.
다음 예약어는 정규 표현식에 사용될 수 있습니다.
^
일치하는 문자열은 다음 문자열로 시작합니다.
mysql> select "fonfo" regexp "^fo$" -> ; 일치하지 않음을 나타냄)
mysql> select "fofo" regexp "^fo" -> 1(일치함을 나타냄)
$
일치하는 문자열은 이전 문자열로 끝납니다.
mysql> " regexp "^fono$"; -> 1(일치함을 나타냄)
mysql> select "fono" regexp "^fo$"; -> 0(불일치함을 나타냄)
.
일치 모든 문자(새 줄 포함)
mysql> select "fofo" regexp "^f.*" -> 1(일치 항목을 나타냄)
mysql> select "fonfo" regexp "^f .*"; -> 1(일치 표시)
a*
a(빈 문자열 포함)와 일치
mysql> select "ban" regexp "^ba*n" -> )
mysql> select "baaan" regexp "^ba*n"; -> 1(일치함을 나타냄)
mysql> select "bn" regexp "^ba*n"을 나타냄; )
a
여러 a와 일치합니다(빈 문자열 제외)
mysql> select "ban" regexp "^ba n" -> 1(일치함을 나타냄)
mysql> regexp "^ba n"; 0(일치 없음을 나타냄)
a?
1 또는 0과 일치
mysql> "bn" regexp "^ba?n"; (일치함을 나타냄)
mysql> select "ban" regexp "^ba?n" -> (일치함을 나타냄)
mysql> select "baan" regexp "^ba?n"; ; 0(일치 없음을 나타냄)
de|abc
de 또는 abc와 일치
mysql> select "pi" regexp "pi|apa" -> "axe" regexp "pi|apa"; -> 0(일치 없음을 나타냄)
mysql> select "apa" regexp "pi|apa" -> 1(일치함을 나타냄)
mysql> apa" regexp "^(pi|apa)$"; -> 1(일치함을 나타냄)
mysql> select "pi" regexp "^(pi|apa)$"; -> 1(일치함을 나타냄)
mysql> select "pix" regexp "^(pi|apa)$"; -> 0(불일치 표시)
(abc)*
빈 문자열 포함) >mysql> "pi" regexp "^(pi)*$"; -> 1(일치함을 나타냄)
mysql> "pip" regexp "^(pi)*$"를 나타냄) 일치하지 않음)
mysql> select "pipi" regexp "^(pi)*$" -> 1(일치함을 나타냄)
{1}
{2,3}
여러 이전 예약어
a*
의 기능을 실현할 수 있는 보다 포괄적인 방법은 {0,}
a
를 {1,}
으로 작성할 수 있습니다. a?
는 다음과 같이 작성할 수 있습니다. {0,1}
{}에는 정수 매개변수 i가 하나만 있습니다. 즉, 문자는 i번만 나타날 수 있습니다. 뒤에 ","가 오면 문자가 i번 이상 나타날 수 있음을 의미합니다. {} 내에 정수 매개변수 i가 하나만 있고 그 뒤에 ","가 온 다음 정수 매개변수 j가 옵니다. 이는 문자가 위에서 i번, 아래에서 j번만 나타날 수 있음을 의미합니다(i번 및 j번 포함). 정수 매개변수는 0보다 크거나 같고 re_dup_max보다 작거나 같아야 합니다(기본값은 255). 두 개의 매개변수가 있는 경우 두 번째 매개변수는 첫 번째 매개변수보다 크거나 같아야 합니다.
[a-dx]
는 "a", "b", "c", "d" 또는 "x"와 일치합니다.
[ ^a-dx]
"a", "b", "c", "d", "x"를 제외한 모든 문자와 일치합니다."[", "]"는 쌍으로 사용해야 합니다.
mysql> select "axbc" regexp "[a-dxyz]" -> 1(일치함을 나타냄)
mysql> select "axbc" regexp "^ [ a-dxyz]$"; -> 0(일치 없음을 나타냄)
mysql> select "axbc" regexp "^[a-dxyz] $"; -> 1(일치 없음을 나타냄)
mysql> "axbc" 정규 표현식 "^[^a-dxyz] $"; -> 0(일치 없음을 나타냄)
mysql> "gheis" 정규 표현식 "^[^a-dxyz] $" 선택 ( 일치를 나타냄)
mysql> select "gheisa" regexp "^[^a-dxyz] $" -> 0 (불일치를 나타냄)
------------ - ---------------------
[ [.characters.]]
은 비교 요소의 순서를 나타냅니다. 대괄호 안의 문자 순서는 고유합니다. 하지만 대괄호 안에 와일드카드를 포함할 수 있으므로 더 많은 문자와 일치할 수 있습니다. 예를 들어 정규식 [[.ch.]]*c는 chchcc의 처음 5개 문자와 일치합니다.
[=character_class=]
은 동일한 클래스를 나타내며 자신을 포함하여 클래스의 다른 동일한 요소를 대체할 수 있습니다. 예를 들어, o와 ( )가 동일한 클래스의 멤버인 경우 [[=o=]], [[=( )=]] 및 [o( )]는 완전히 동일합니다.
[:character_class:]
괄호 안의 [:와 :] 사이에는 해당 클래스에 속하는 모든 문자를 나타낼 수 있는 문자 클래스의 이름이 있습니다.
문자 클래스의 이름은 다음과 같습니다: alnum, digit, punct, alpha, graph, space, 공백, lower, upper, cntrl, print 및 xdigit
mysql> select "justalnums" regexp "[[:alnum:] ] "; -> 1(일치함을 나타냄)
mysql> select "!!" regexp "[[:alnum:]] "; -> 0(일치하지 않음을 나타냄)
[[::] ]
단어의 시작과 끝이 각각 빈 문자열과 일치합니다. 단어의 시작과 끝은 alnum에 포함된 문자도 아니고 밑줄도 아닙니다.
mysql> select "a word a" regexp "[[::]]" -> 1(일치함을 나타냄)
mysql> select "a xword a" regexp "[[::]]"; -> 0(일치 없음을 나타냄)
mysql> "weeknights" 정규식 선택 "^(wee|week)(knights|nights)$" ->
이상으로 정규표현식 테스트 도구인 MySql에서의 정규표현식 사용에 대한 설명을 소개하였고, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.