在mysql中,regexp_like()函數(shù)用于確定字符串是否匹配正則表達式。
如果字符串與提供的正則表達式匹配,函數(shù)返回1;如果不匹配,返回0。
語法:
REGEXP_LIKE(expr,?pat[,?match_type])
其中expr是輸入字符串,pat是測試字符串的正則表達式。
可選的match_type參數(shù)允許您精煉正則表達式。
例如,您可以使用match_type來指定區(qū)分大小寫的匹配與否。
regexp_like()例子1 -基本用法
下面是一個基本的例子:
SELECT?REGEXP_LIKE('Cat',?'.*')?Result;
結果:
+--------+ |?Result?| +--------+ |??????1?| +--------+
在本例中,正則表達式指定任意序列中的任意字符,因此我們當然會得到一個匹配。函數(shù)返回1表示匹配。
regexp_like()例子2 -沒有匹配
下面是一個輸入字符串與正則表達式不匹配的例子:
SELECT?REGEXP_LIKE('Cat',?'b+')?Result;
結果:
+--------+ |?Result?| +--------+ |??????0?| +--------+
在本例中,正則表達式指定在任何序列中都應該有一個或多個b字符。我們的輸入字符串不包含這個字符,因此返回0。
regexp_like()例子3 -匹配字符串的開頭
下面是一個正則表達式指定字符串必須以某些字符開頭的例子:
SELECT?REGEXP_LIKE('Cat',?'^Ca')?Result;
結果:
+--------+ |?Result?| +--------+ |??????1?| +--------+
如果沒有匹配,會發(fā)生什么:
SELECT?REGEXP_LIKE('Cat',?'^Da')?Result;
結果:
+--------+ |?Result?| +--------+ |??????0?| +--------+
regexp_like()例子4 – match_type參數(shù)
您可以提供額外的參數(shù)來確定匹配類型。這允許您指定匹配是否區(qū)分大小寫,是否包含行終止符,等等。
下面是一個指定區(qū)分大小寫匹配和區(qū)分大小寫匹配的例子:
SELECT? ??REGEXP_LIKE('Cat',?'^ca',?'c')?'Case-Sensitive', ??REGEXP_LIKE('Cat',?'^ca',?'i')?'Case-Insensitive';
結果:
+----------------+------------------+ |?Case-Sensitive?|?Case-Insensitive?| +----------------+------------------+ |??????????????0?|????????????????1?| +----------------+------------------+
match_type參數(shù)可以包含以下字符:
c:區(qū)分大小寫的匹配。
i:不分大小寫匹配。
m:多重線模式。識別字符串中的行終止符。默認行為是僅在字符串表達式的開始和結束處匹配行終止符。
n:該.字符與行終止符匹配。默認設置是.匹配以在行尾停止。
u:僅限Unix的行結尾。只有換行符被.、^和$ 匹配運算符識別為行結束符。
相關推薦:《mysql教程》