MySQL的正则表达式
生活随笔
收集整理的這篇文章主要介紹了
MySQL的正则表达式
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. Mysql的正則表達(dá)式僅僅使SQL語言的一個(gè)子集,可以匹配基本的字符、字符串。 例如:select * from wp_posts where post_name REGEXP 'hello',可以檢索出列post_name中所有包含hello的行 REGEXP '.og' .是正則表達(dá)式中里一個(gè)特殊的字符。它表示匹配一個(gè)字符,因此,dog,hog,mog等等都能匹配。注意: 關(guān)于LIKE和REGEXP的區(qū)別:LIKE匹配整個(gè)列。如果被匹配的文本僅在列值中出現(xiàn),LIKE并不會(huì)找到它,相應(yīng)的行也不會(huì)返回(當(dāng)然,使用通配符除外)。而REGEXP在列值內(nèi)進(jìn)行匹配,如果被匹配的匹配的文本在列值中出現(xiàn),REGEXP將會(huì)找到它,相應(yīng)的行將被返回,這時(shí)一個(gè)非常重要的差別(當(dāng)然,如果適應(yīng)定位符號(hào)^和$,可以實(shí)現(xiàn)REGEXP匹配整個(gè)列而不是列的子集)。 關(guān)于大小寫的區(qū)分:MySQL中正則表達(dá)式匹配(從版本3.23.4后)不區(qū)分大小寫 。如果要區(qū)分大小寫,應(yīng)該使用BINARY關(guān)鍵字,如where post_name REGEXP BINARY 'Hello .000'2.關(guān)于OR匹配 為了搜索兩個(gè)串之一,使用|, 如,select * from products where pro_id REGEXP '1000|2000' ORDER BY pro_id; 這樣就1000和2000都能匹配并返回,當(dāng)然,使用多個(gè)|就可以匹配多個(gè)串3.只是匹配幾個(gè)字符[] 例如,這樣將要匹配[0123456789]可以匹配0到9,[1-4][4-9]也是合法的范圍。此外,范圍不一定只是數(shù)值的,[a-z]匹配任意字母字符 如:SELECT prod_name FROM products WHERE prod_name REGEXP '[1-5] Ton' ORDER BY prod_name;4.匹配特殊字符使用\進(jìn)行轉(zhuǎn)義 \\.能夠匹配. \\f換頁 \\n換行 \\r回車 \\t制表 \\縱向制表注意:為了匹配\本身,需要使用\\\5.匹配字符類 [:alnum:] 任意字母和數(shù)字(通[a-zA-Z0-9]) [:alpha:] 任意字符(同[a-zA-Z]) [:blank:] 空格和制表符(同[\\t]) [:digit:] 任意數(shù)字(同[0-9]) [:lower:] 任意小寫字母 [:upper:] 任意大寫字母 [:space:] 包括空格在內(nèi)的任意空白字符6.匹配多個(gè)實(shí)例,關(guān)于重復(fù)元字符 * 0個(gè)或者多個(gè)匹配 + 1個(gè)或者多個(gè)匹配(等于{1,}) ? 1個(gè)或者多個(gè)匹配(等于{0,1}) {n} 指定數(shù)目的匹配 {n,} 不少于指定數(shù)目的匹配 {n,m} 匹配數(shù)目的范圍(m不超過255)例子: select prod_name from products where prod_name REGEXP '[[:DIGIT:]]{4}' ,如前所述,[:digit:]匹配任意數(shù)字,因而它為數(shù)字的一個(gè)幾何。[[:digit:]]{4}匹配連在一起的任意4位數(shù)字,當(dāng)然,上面的例子也可以這樣寫REGEXP '[0-9][0-9][0-9][0-9]'7.定位符 ^ 文本的開始 & 文本的結(jié)尾 [[:<:]] 詞的開始 [[:>:]] 詞的結(jié)尾 通過使用這些定位符,能夠使REGEXP起類似LIKE的作用
?
轉(zhuǎn)載于:https://www.cnblogs.com/loveyouyou616/archive/2012/12/11/2812338.html
總結(jié)
以上是生活随笔為你收集整理的MySQL的正则表达式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hello Jsilk
- 下一篇: JavaScript正则表达式基础知识汇