正則表式學習

2021-05-25 01:38:22 字數 2862 閱讀 9633

元字元

描述.點

匹配任何單個字元。例如正規表示式r.t匹配這些字串:rat、rut、r t,但是不匹配root。$

匹配行結束符。例如正規表示式weasel$ 能夠匹配字串"he's a weasel"的末尾

但是不能匹配字串"they are a bunch of weasels." ^

匹配一行的開始。例如正規表示式^when in能夠匹配字串"when in the course of human events"的開始,但是不能匹配"what and when in the" *

匹配0或多個正好在它之前的那個字元。例如正規表示式.*意味著能夠匹配任意數量的任何字元。

/           

這是引用符,用來將這裡列出的這些元字元當作普通的字元來進行匹配。例如正規表示式/$被用來匹配美元符號,而不是行尾,類似的,正規表示式/.用來匹配點字元,而不是任何字元的萬用字元。

[ ] [c1-   c2]

[^c1-c2]

匹配括號中的任何乙個字元。例如正規表示式r[aou]t匹配rat、rot和rut,但是不匹配ret。可以在括號中使用連字元-來指定字元的區間,例如正規表示式[0-9]可以匹配任何數字字元;還可以制定多個區間,例如正規表示式[a-za-z]可以匹配任何大小寫字母。另乙個重要的用法是「排除」,要想匹配除了指定區間之外的字元——也就是所謂的補集——在左邊的括號和第乙個字元之間使用^字元,例如正規表示式[^269a-z] 將匹配除了2、6、9和所有大寫字母之外的任何字元。

/< />

匹配詞(word)的開始(/<)和結束(/>)。例如正規表示式/能夠匹配字串"for the wise"中的"the",但是不能匹配字串"otherwise"中的"the"。注意:這個元字元不是所有的軟體都支援的。

/( /)

將/( 和/) 之間的表示式定義為「組」(group),並且將匹配這個表示式的字元儲存到乙個臨時區域(乙個正規表示式中最多可以儲存9個),它們可以用/1 到/9 的符號來引用。|

將兩個匹配條件進行邏輯「或」(or)運算。例如正規表示式(him|her) 匹配"it belongs to him"和"it belongs to her",但是不能匹配"it belongs to them."。注意:這個元字元不是所有的軟體都支援的。+

匹配1或多個正好在它之前的那個字元。例如正規表示式9+匹配9、99、999等。注意:這個元字元不是所有的軟體都支援的。?

匹配0或1個正好在它之前的那個字元。注意:這個元字元不是所有的軟體都支援的。

匹配指定數目的字元,這些字元是在它之前的表示式定義的。例如正規表示式a[0-9] 能夠匹配字元"a"後面跟著正好3個數字字元的串,例如a123、a348等,但是不匹配a1234。而正規表示式[0-9] 匹配連續的任意4個、5個或者6個數字字元。注意:這個元字元不是所有的軟體都支援的。

匹配中文字元的正規表示式: [/u4e00-/u9fa5]

評注:匹配中文還真是個頭疼的事,有了這個表示式就好辦了

匹配雙位元組字元(包括漢字在內):[^/x00-/xff]

評注:可以用來計算字串的長度(乙個雙位元組字元長度計2,ascii字元計1)

匹配空白行的正規表示式:/n/s*/r

評注:可以用來刪除空白行

匹配html標記的正規表示式:<(/s*?)[^>]*>.*?|<.*? />

評注:網上流傳的版本太糟糕,上面這個也僅僅能匹配部分,對於複雜的巢狀標記依舊無能為力

匹配首尾空白字元的正規表示式:^/s*|/s*$

評注:可以用來刪除行首行尾的空白字元(包括空格、製表符、換頁符等等),非常有用的表示式

匹配email位址的正規表示式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*

評注:表單驗證時很實用

匹配**url的正規表示式:[a-za-z]+://[^/s]*

評注:網上流傳的版本功能很有限,上面這個基本可以滿足需求

匹配帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-za-z][a-za-z0-9_]$

評注:表單驗證時很實用

匹配國內**號碼:/d-/d|/d-/d

評注:匹配形式如 0511-4405222 或 021-87888822

匹配身份證:/d|/d

評注:中國的身份證為15位或18位

匹配特定數字:

^[1-9]/d*$    //匹配正整數

^-[1-9]/d*$   //匹配負整數

^-?[1-9]/d*$   //匹配整數

^[1-9]/d*|0$  //匹配非負整數(正整數 + 0)

^-[1-9]/d*|0$   //匹配非正整數(負整數 + 0)

^[1-9]/d*/./d*|0/./d*[1-9]/d*$   //匹配正浮點數

^-([1-9]/d*/./d*|0/./d*[1-9]/d*)$  //匹配負浮點數

^-?([1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0)$  //匹配浮點數

^[1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0$   //匹配非負浮點數(正浮點數 + 0)

^(-([1-9]/d*/./d*|0/./d*[1-9]/d*))|0?/.0+|0$  //匹配非正浮點數(負浮點數 + 0)

評注:處理大量資料時有用,具體應用時注意修正

匹配特定字串:

^[a-za-z]+$  //匹配由26個英文本母組成的字串

^[a-z]+$  //匹配由26個英文本母的大寫組成的字串

^[a-z]+$  //匹配由26個英文本母的小寫組成的字串

^[a-za-z0-9]+$  //匹配由數字和26個英文本母組成的字串

^/w+$  //匹配由數字、26個英文本母或者下劃線組成的字串

JS正則匹配驗證表過式

匹配中文字元的正規表示式 u4e00 u9fa5 匹配雙位元組字元 包括漢字在內 x00 xff 匹配空行的正規表示式 n s r 匹配 html 標記的正規表示式 匹配首尾空格的正規表示式 s s 像vbscript 那樣的trim 函式 匹配email 位址的正規表示式 w w w w w w ...

常用正則式

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 d 0 0 非正浮點數 負浮點數 ...

常用正則式

正則式寫法規則 正規表示式中有很多上述的具有特別意義的字元。首先是下列字元。範圍描述符。a z 表示從a到z之間的任意乙個。w英文本母和數字。即 0 9 a z a z w非英文本母和數字 s空字元,即 t n r f s非空字元。d數字,即 0 9 d非數字。b詞邊界字元 在範圍描述符外部時 b非...