MySQL的Regex

來源:互聯網
上載者:User

標籤:dig   元字元   檢索   開始   區分大小寫   斷行符號   文本   超過   bin   

1.  Mysql的Regex僅僅使SQL語言的一個子集,可以匹配基本的字元、字串。 
例如:select * from wp_posts where post_name REGEXP ‘hello‘,可以檢索出列post_name中所有包含hello的行 
    REGEXP ‘.og‘  .是Regex中裡一個特殊的字元。它表示匹配一個字元,因此,dog,hog,mog等等都能匹配。


注意: 
    關於LIKE和REGEXP的區別:LIKE匹配整個列。如果被匹配的文本僅在列值中出現,LIKE並不會找到它,相應的行也不會返回(當然,使用萬用字元除外)。而REGEXP在列值內進行匹配,如果被匹配的匹配的文本在列值中出現,REGEXP將會找到它,相應的行將被返回,這時一個非常重要的差別(當然,如果適應定位器號^和$,可以實現REGEXP匹配整個列而不是列的子集)。 
    關於大小寫區分:MySQL中Regex匹配(從版本3.23.4後)不區分大小寫 。如果要區分大小寫,應該使用BINARY關鍵字,如where post_name REGEXP BINARY ‘Hello .000‘


2.關於OR匹配 
    為了搜尋兩個串之一,使用|, 如,select * from products where pro_id REGEXP ‘1000|2000‘  ORDER BY pro_id; 
    這樣就1000和2000都能匹配並返回,當然,使用多個|就可以匹配多個串


3.只是匹配幾個字元[] 
    例如,這樣將要匹配[0123456789]可以匹配0到9,[1-4][4-9]也是合法的範圍。此外,範圍不一定只是數值的,[a-z]匹配任意字母字元 
    如:SELECT prod_name FROM products WHERE prod_name REGEXP ‘[1-5] Ton‘ ORDER BY prod_name;


4.匹配特殊字元使用\進行轉義 
    \\.能夠匹配. 
    \\f換頁 
    \\n換行 
      \\r斷行符號 
    \\t製表 
    \\縱向製表


注意:為了匹配\本身,需要使用\\\


5.匹配字元類 
    [:alnum:]    任意字母和數字(通[a-zA-Z0-9]) 
    [:alpha:]     任一字元(同[a-zA-Z]) 
     [:blank:]    空格和定位字元(同[\\t]) 
     [:digit:]     任一數字(同[0-9]) 
     [:lower:]  任意小寫字母 
     [:upper:]   任意大寫字母 
     [:space:]   包括空格在內的任意空白字元


6.匹配多個執行個體,關於重複元字元 
*      0個或者多個匹配 
+     1個或者多個匹配(等於{1,}) 
?     1個或者多個匹配(等於{0,1}) 
{n}    指定數目的匹配 
{n,}   不少於指定數目的匹配 
{n,m}    匹配數目的範圍(m不超過255)


例子:  select prod_name from products where prod_name REGEXP ‘[[:DIGIT:]]{4}‘   ,如前所述,[:digit:]匹配任意素子,因而它為數位一個幾何。{4}確切的要求它前面的字元(任一數字)出現3此,所以[[:digit:]]{4}匹配連在一起的任意4位元字,當然,上面的例子也可以這樣寫REGEXP ‘[0-9][0-9][0-9][0-9]‘


7.定位器 
^  文本的開始 
&  文本的結尾 
[[:<:]]   詞的開始 
[[:>:]]   詞的結尾 
通過使用這些定位器,能夠使REGEXP起類似LIKE的作用

 

from: http://www.cnblogs.com/fuyunbiyi/archive/2012/03/29/2423489.html

MySQL的Regex

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.