mysql 搜索正则表达式_[MySQL] 用正则表达式进行搜索
正則表達(dá)式的作用就是匹配文本,講一個(gè)模式(正則表達(dá)式)與一個(gè)文本串進(jìn)行比較。
基本字符匹配
SELECT 列名 FROM 表名 WHERE 列名 REGEXP 條件 ORDER BY 列名;
形式與LIKE相同,只不過REGEXP后面跟的條件為正則表達(dá)式。
差別:
LIKE匹配整個(gè)列。如果被匹配的文本在列值中出現(xiàn),LIKE不會(huì)找到它,相應(yīng)的行也不會(huì)被返回(除非使用通配符)。
REGEXP在列值內(nèi)進(jìn)行匹配,如果被匹配的文本在列值中出現(xiàn),REGEXP會(huì)找到它,相應(yīng)的行將被返回。
正則表達(dá)式不區(qū)分大小寫,如果需要區(qū)分則要使用BINARY關(guān)鍵字。如 REGEXP BINARY + 正則表達(dá)式條件。
進(jìn)行OR匹配
使用正則表達(dá)式符號(hào)‘|’將條件并列。
例如 1000 OR 2000 = 1000|2000
匹配幾個(gè)字符之一
使用[]來定義一組字符
例如 [123]abc = 1abc 或 2abc 或 3abc
[123]abc = [1|2|3]abc
匹配除指定字符外的任何東西
[^123] 匹配除1\2\3以外的任何東西
匹配范圍
[0123456789] = [0-9]
匹配特殊字符
'.'匹配任意字符
\\- 表示查找-
\\. 表示查找.
\\\ 表示查找\
匹配字符類
類 說明
[:alnum:] 任意字母和數(shù)字[a-zA-Z0-9]
[:alpha:] 任意字符[a-zA-Z]
[:blank:] 空格和制表[\\t]
[:cntrl:] ? ASCII控制字符(ASCII 0到31和127)
[:digit:] 任意數(shù)字[0-9]
[:graph:] 與[:print:]相同,但不包含空格
[:lower:] ?任意小寫字母[a-z]
[:print:] 任意可打印字符
[:punct:] ?既不在[:alnum:]又不在[:cntrl:]中的任意字符
[:space:] 包含空格在內(nèi)的任意空白字符[\\f\\n\\r\\t\\v]
[:upper:] 任意大寫字母[A-Z]
[:xdigit:] ?任意十六進(jìn)制數(shù)字[a-fA-F0-9]
匹配多個(gè)實(shí)例
重復(fù)元字符
元字符 說明
* 0個(gè)或多個(gè)匹配
+ ? 1個(gè)或多個(gè)匹配{1,}
?? ?0個(gè)或1個(gè)匹配{0, 1}
{n} 指定數(shù)目的匹配
{n,} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?不少于指定數(shù)目的匹配
{n, m} 匹配數(shù)目的范圍(m不超過255)
定位符
匹配指定位置的文本
定位元字符
元字符 說明
^ 文本的開始
$ ?文本的結(jié)尾
[[:<:>
[[:>:]] 詞的結(jié)尾
^有兩種用法,在集合中(用[和]定義),用它來否定該集合,否則,用來指串的開始處
總結(jié)
以上是生活随笔為你收集整理的mysql 搜索正则表达式_[MySQL] 用正则表达式进行搜索的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql基础知识(mysql新手教程)
- 下一篇: MySQL字符串函数:字符串截取总结