MySQLRegex

來源:互聯網
上載者:User

標籤:

Regex是用來匹配文本的特殊的串(字元集和)。比如從文字檔中提取電話號碼。

基底字元匹配

SELECT name

FROM Customer

WHERE name REGEXP ‘li‘

 

LIKE與REGEXP之間的重要差別

SELECT Age

FROM Customer

WHERE Age REGEXP ‘16‘

SELECT Age

FROM Customer

WHERE Age LIKE‘1‘

如果執行這兩個語句,LIKE不返回資料,REGEXP返回一行

LIKE匹配整個列,如果被匹配的文本僅在列值中出現,like將不會找到它,

而REGEXP在列值內進行匹配,如果被匹配的文本在列值中出現,REGEXP將會找到它

進行OR匹配

SELECT Age

FROM Customer

WHERE Age REGEXP ‘16|17‘

匹配幾個字元之一

SELECT Name

FROM Customer

WHERE Name REGEXP ‘[123] Ton‘

[123]定義一組字元,它的意思是匹配1或2或3,因此,1 ton和2 ton都匹配且返回,

正如所見,[]是另一種形式的OR語句,[123]匹配字元1,2或3,但[^123]卻匹配除去這些字元外的任何東西

匹配範圍

集合可用來定義要匹配的一個或多個字元

[0123456789] 簡化寫法[0-9], 範圍不限於完整的集合[3-8]或[2-9]也是合法的範圍,此外範圍不一定只是數值的,[a-z]匹配任意字母字元。

例如:

SELECT Name

FROM Customer

WHERE Name REGEXP ‘[1-3] Ton‘

匹配特殊字元

如何匹配有特殊含義的字元,如[]、 | 、.

為了匹配特殊字元必須用逸出字元\\為前置,\\-表示尋找-,\\.表示尋找.

例如:

SELECT Name

FROM Customer

WHERE Name REGEXP ‘\\.‘

\\也用來引用元字元(具有特殊含義的字元)

\\f 換頁

\\n換行

\\r斷行符號

\\t製表

\\v縱向製表

匹配字元類

字元類
說明
[:alnum:] 任一字元和數字(同[a-zA-Z0-9])
[:alpha:] 任一字元([a-zA-Z])
[:blank:] 空格和製表([同\\t])
[:cntrl:] ASCII控制符(ASCII 0到31 和127)
[:digit:] 任一數字(同[0-9])
[:graph:] 與print相同但不包括空格
[:lower:] 任意小寫字元如[a-z]
[:print:] 任意可列印字元
[:punct:] 既不在 [:alnum:]又不在[:cntrl:]的字元
[:space:] 包含空格在內的任意空白字元(同[\\f\\n\\r\\t\\v])
[:upper:] 任意大寫字元(同[A-Z])
[:xdigit:]

任意十六進位數字([a-fA-F0-9])

 

 

 

 

 

 

 

 

 

 

 

 

 

 

匹配多個字元

前面使用的Regex都試圖匹配單次出現,但有時需要對匹配的數目有更強的控制。

重複元字元
元字元 說明
* 0個或多個匹配
+ 1個或多個匹配(等於{1,})
0個或1個匹配(等於{0,1})
{n} 指定數目的匹配
{n,} 不少於指定數目的匹配
{n,m} 匹配數目的範圍(m不超過255)

 

 

 

 

 

 

 

 

例如:

SELECT Name

FROM Customer

WHERE Name REGEXP ‘\\([0-9]\\ sticks?\\)‘

定位器

定位元字元
元字元 說明
^ 文本的開始
$ 文本的結束
[[:<:]] 詞的開始
[[:>:]] 詞的結尾

 

 

 

 

 

例如:

SELECT Name

FROM Customer

WHERE Name REGEXP ‘^[0-9\\.]‘

MySQLRegex

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.