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

 expr REGEXP pat

 or

 expr RLIKE pat

#ex.1)
 mysql> SELECT 'a' REGEXP 'A';
       -> 1

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

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

#ex.2)
 mysql> SELECT 'a' REGEXP '^[a-z]';
       -> 1

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

#ex.3)
 mysql> SELECT 'a' REGEXP '.*';
       -> 1

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

#ex.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

#ex.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/ 에서 구할 수 있습니다.

0 댓글