在學習mysql時,需要用到sql語句,而sql語句又常常會用到正規表示式(regex)
,因此寫下這篇文章,方便日後檢視,其實正規表示式並不難。
正規表示式
本質上是字串,它是一種匹配給定文字的模式。如用於檢驗輸入的郵箱是否合法等多方面均有應用。
模式描述
^匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,^ 也匹配 『\n』 或 『\r』 之後的位置。
$匹配輸入字串的結束位置。如果設定了regexp 物件的 multiline 屬性,$ 也匹配 『\n』 或 『\r』 之前的位置。
.匹配除 「\n」 之外的任何單個字元。要匹配包括 『\n』 在內的任何字元,請使用象 『[.\n]』 的模式。
[…]字元集合。匹配所包含的任意乙個字元。例如, 『[abc]』 可以匹配 「plain」 中的 『a』。
[^…]
負值字元集合。匹配未包含的任意字元。例如, 『[^abc]』 可以匹配 「plain」 中的』p』。
p1|p2|p3
匹配 p1 或 p2 或 p3。例如,『z|food』 能匹配 「z」 或 「food」。』(z|f)ood』 則匹配 「zood」 或 「food」。
?匹配前面的子表示式0次或1次。例如,-?[0-100]能夠匹配-100和100之間任意整數。在+、*後可以讓其後的匹配模式盡早匹配,如(.+?)
*匹配前面的子表示式零次或多次。例如,zo* 能匹配 「z」 以及 「zoo」。* 等價於。
+匹配前面的子表示式一次或多次。例如,『zo+』 能匹配 「zo」 以及 「zoo」,但不能匹配 「z」。+ 等價於 。
n 是乙個非負整數。匹配確定的 n 次。例如,『o』 不能匹配 「bob」 中的 『o』,但是能匹配 「food」 中的兩個 o。
m 和 n 均為非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。
( )將 () 之間括起來的表示式定義為「組」(group),並且將匹配這個表示式的字元儲存到乙個臨時區域,這個元字元在字串提取的時候非常有用。把一些字元表示為乙個整體。改變優先順序、定義提取組兩個作用。這時(ab)可看作乙個字元,(ab)+,即表示匹配ab或abababab……
部分資料來自: 模式
例子^example.*
^為匹配輸入字串的開始位置。這個正規表示式可以匹配字串"examplebalabalabala",但不能匹配字串"balabala example"。.為匹配任意單個字元,*為0次或多次匹配,因此.*為匹配任意長度的字串
.*example$
$為匹配輸入字串的結束位置。這個正規表示式可以匹配以example結尾的字串"balabalabalaexample",但不能匹配字串"example balabala"
[1-9]
[a-z]
[1-9a-za-z]
匹配數字1到9
匹配字母a到z
匹配大小寫字母和數字1到9
\d\.
\d+\d
\d*匹配一位
數字,由於d可表示字母d,所以要加\進行轉義
匹配小數點.
匹配\d一次或多次,也就是匹配 純數字的字串
匹配1到18位數字
匹配0到任意位數字,相當於\d。這裡沒寫右區間代表任意位數
\d\s
\s\w
\w匹配一位非數字,等同於[^0-9]
匹配一位換行符、tab製表符等空白字元
匹配一位非空白字元
匹配一位字母或數字或下劃線或漢字,即匹配能組成詞的字元
等同於[^\w]
^\d-?\d+$
表示被匹配的字串行由三至四位數字組成,由於長途區號的連字元「-」可有可無,所以這裡使用「?」元字元進行說明。由於連字元「-」在正規表示式中有特殊含義(表示範圍,比如[0-9]),所以要對其進行轉義。
正規表示式 1 正規表示式基礎
1.正規表示式基礎 正規表示式描述了一種字串匹配的模式,即可以使使用者通過一系列普通字元或特殊字元構建能夠明確描述文字字串的匹配模式,可以用來檢查某個字串是否含有某種子字串,將匹配的子字串做替換或者從某個字串中取出符合某個條件的子字串等。1.1 正規表示式的基本結構 乙個正規表示式就是由普通字元 如...
正規表示式基礎
限定符 d 匹配非負整數 正整數 0 0 9 1 9 0 9 匹配正整數 d 0 匹配非正整數 負整數 0 0 9 1 9 0 9 匹配負整數 d 匹配整數 d d 匹配非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 匹配正浮點數 d...
正規表示式基礎
元字元 描述 匹配任何單個字元。例如正規表示式r.t匹配這些字串 rat rut r t,但是不匹配root。匹配行結束符。例如正規表示式weasel 能夠匹配字串 he s a weasel 的末尾,但是不能匹配字串 they are a bunch of weasels.匹配一行的開始。例如正規...