pat 패턴에 대한 문자열 expr 패턴 매치를 수행하며, 매치하면 1를, 그렇지 않으면 0을 반환합니다. expr 또는 pat 의 값이 NULL이면 NULL를 반환하고, 바이너리 문자열을 사용할 때에만 대소문자를 구분하게 됩니다.

 expr REGEXP pat

 or

 expr RLIKE pat


예제 #1)

 mysql> SELECT 'a' REGEXP 'A';

       -> 1

 

 mysql> SELECT 'a' REGEXP BINARY 'A';

       -> 0

 

 mysql> SELECT 'A' REGEXP BINARY 'A';

       -> 1


예제 #2)

 mysql> SELECT 'a' REGEXP '^[a-z]';

       -> 1

 

 mysql> SELECT '1' REGEXP '^[a-z]';

       -> 0


예제 #3)

 mysql> SELECT 'a' REGEXP '.*';

       -> 1

 

 mysql> SELECT 'a' REGEXP 'm%y%%';

       -> 0


예제 #4)

 mysql> SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';

       -> 1


 ^ 문자열의 시작

 mysql> SELECT 'fo\nfo' REGEXP '^fo$';

                   -> 0
 mysql> SELECT 'fofo' REGEXP '^fo';

                   -> 1

 

 $ 문자열의 끝

 mysql> SELECT 'fo\no' REGEXP '^fo\no$';

                 -> 1
 mysql> SELECT 'fo\no' REGEXP '^fo$';

                 -> 0

 

 * 모든 문자열

 mysql> SELECT 'fofo' REGEXP '^f.*$';

                -> 1
 mysql> SELECT 'fo\r\nfo' REGEXP '^f.*$';

                -> 1

 

 a* 0개 이상의 문자열, a{0,}

 mysql> SELECT 'Ban' REGEXP '^Ba*n';

                   -> 1
 mysql> SELECT 'Baaan' REGEXP '^Ba*n';

                   -> 1
 mysql> SELECT 'Bn' REGEXP '^Ba*n';

                   -> 1

 

 a+ 1개 이상의 문자열, a{1,}

 mysql> SELECT 'Ban' REGEXP '^Ba+n';

                     -> 1
 mysql> SELECT 'Bn' REGEXP '^Ba+n';

                      -> 0

 

 a? 0 또는 1개 포함하는 문자열, a{0,1}

 mysql> SELECT 'Bn' REGEXP '^Ba?n';

                     -> 1
 mysql> SELECT 'Ban' REGEXP '^Ba?n';

                     -> 1
 mysql> SELECT 'Baan' REGEXP '^Ba?n';

                     -> 0

 

 시퀸스 또는 ABC 중 하나와 일치하는 문자열

 mysql> SELECT 'pi' REGEXP 'pi|apa';

                     -> 1
 mysql> SELECT 'axe' REGEXP 'pi|apa';

                    -> 0
 mysql> SELECT 'apa' REGEXP 'pi|apa';

                    -> 1
 mysql> SELECT 'apa' REGEXP '^(pi|apa)$';

                    -> 1
 mysql> SELECT 'pi' REGEXP '^(pi|apa)$';

                    -> 1
 mysql> SELECT 'pix' REGEXP '^(pi|apa)$';

                    -> 0

 

 ABC 인스턴스가 0개 이상 일치하는 문자열

 mysql> SELECT 'pi' REGEXP '^(pi)*$';

                    -> 1
 mysql> SELECT 'pip' REGEXP '^(pi)*$';

                    -> 0
 mysql> SELECT 'pipi' REGEXP '^(pi)*$';

                    -> 1


예제 #5)

 mysql> SELECT 'abcde' REGEXP 'a[bcd]{2}e';

              -> 0
 mysql> SELECT 'abcde' REGEXP 'a[bcd]{3}e';

              -> 1
 mysql> SELECT 'abcde' REGEXP 'a[bcd]{1,10}e';

              -> 1

 mysql> SELECT 'aXbc' REGEXP '[a-dXYZ]';

                 -> 1
 mysql> SELECT 'aXbc' REGEXP '^[a-dXYZ]$';

                 -> 0
 mysql> SELECT 'aXbc' REGEXP '^[a-dXYZ]+$';

                 -> 1
 mysql> SELECT 'aXbc' REGEXP '^[^a-dXYZ]+$';

                 -> 0
 mysql> SELECT 'gheis' REGEXP '^[^a-dXYZ]+$';

                 -> 1
 mysql> SELECT 'gheisa' REGEXP '^[^a-dXYZ]+$';

                 -> 0

 

좀더 많은 자료가 필요하다면 http://www.regexlib.com/ 에서 구할 수 있습니다.