正規表示式語法以及常用

2021-07-15 02:41:18 字數 3212 閱讀 3481

兩個特殊的符號'^'和'$'。他們的作用是分別指出乙個字串的開始和結束。例子如下:

"^the":表示所有以"the"開始的字串("there","the cat"等);

"of despair$":表示所以以"of despair"結尾的字串;

"^abc$":表示開始和結尾都是"abc"的字串——呵呵,只有"abc"自己了;

"notice":表示任何包含"notice"的字串。

象最後那個例子,如果你不使用兩個特殊字元,你就在表示要查詢的串在被查詢串的任意部分——你並

不把它定位在某乙個頂端。

其它還有'*','+'和'?'這三個符號,表示乙個或一串行字元重複出現的次數。它們分別表示「沒有或

更多」,「一次或更多」還有「沒有或一次」。下面是幾個例子:

"ab*":表示乙個字串有乙個a後面跟著零個或若干個b。("a", "ab", "abbb",……);

"ab+":表示乙個字串有乙個a後面跟著至少乙個b或者更多;

"ab?":表示乙個字串有乙個a後面跟著零個或者乙個b;

"a?b+$":表示在字串的末尾有零個或乙個a跟著乙個或幾個b。

你也可以使用範圍,用大括號括起,用以表示重複次數的範圍。

"ab":表示乙個字串有乙個a跟著2個b("abb");

"ab":表示乙個字串有乙個a跟著至少2個b;

"ab":表示乙個字串有乙個a跟著3到5個b。

請注意,你必須指定範圍的下限(如:""而不是"")。還有,你可能注意到了,'*','+'和

'?'相當於"",""和""。

還有乙個'¦',表示「或」操作:

"hi¦hello":表示乙個字串裡有"hi"或者"hello";

"(b¦cd)ef":表示"bef"或"cdef";

"(a¦b)*c":表示一串"a""b"混合的字串後面跟乙個"c";

'.'可以替代任何字元:

"a.[0-9]":表示乙個字串有乙個"a"後面跟著乙個任意字元和乙個數字;

"^.$":表示有任意三個字元的字串(長度為3個字元);

方括號表示某些字元允許在乙個字串中的某一特定位置出現:

"[ab]":表示乙個字串有乙個"a"或"b"(相當於"a¦b");

"[a-d]":表示乙個字串包含小寫的'a'到'd'中的乙個(相當於"a¦b¦c¦d"或者"[abcd]");

"^[a-za-z]":表示乙個以字母開頭的字串;

"[0-9]%":表示乙個百分號前有一位的數字;

",[a-za-z0-9]$":表示乙個字串以乙個逗號後面跟著乙個字母或數字結束。

你也可以在方括號裡用'^'表示不希望出現的字元,'^'應在方括號裡的第一位。(如:"%[^a-za-z]%"表

示兩個百分號中不應該出現字母)

\b 匹配乙個單詞邊界,也就是指單詞和空格間的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。 

\b 匹配非單詞邊界。'er\b' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。 

\cx 匹配由 x 指明的控制字元。例如, \cm 匹配乙個 control-m 或回車符。x 的值必須為 a-z 或 a-z 之一。否則,將 c 視為乙個原義的 'c' 字元。 

\d 匹配乙個數字字元。等價於 [0-9]。 

\d 匹配乙個非數字字元。等價於 [^0-9]。 

\f 匹配乙個換頁符。等價於 \x0c 和 \cl。

\n 匹配乙個換行符。等價於 \x0a 和 \cj。 

\r 匹配乙個回車符。等價於 \x0d 和 \cm。 

\s 匹配任何空白字元,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。 

\s 匹配任何非空白字元。等價於 [^ \f\n\r\t\v]。

\t 匹配乙個製表符。等價於 \x09 和 \ci。 

\v 匹配乙個垂直製表符。等價於 \x0b 和 \ck。 

\w 匹配包括下劃線的任何單詞字元。等價於'[a-za-z0-9_]'。 

\w 匹配任何非單詞字元。等價於 '[^a-za-z0-9_]'。

^[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)

只能輸入數字:"^[0-9]*$"。

只能輸入n位的數字:"^\d$"。

只能輸入至少n位的數字:"^\d$"。

只能輸入m~n位的數字:。"^\d$"

只能輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。

只能輸入有兩位小數的正實數:"^[0-9]+(.[0-9])?$"。

只能輸入有1~3位小數的正實數:"^[0-9]+(.[0-9])?$"。

只能輸入非零的正整數:"^\+?[1-9][0-9]*$"。

只能輸入非零的負整數:"^\-[1-9]0-9"*$。

只能輸入長度為3的字元:"^.$"。

只能輸入由26個英文本母組成的字串:"^[a-za-z]+$"。

只能輸入由26個大寫英文本母組成的字串:"^[a-z]+$"。

只能輸入由26個小寫英文本母組成的字串:"^[a-z]+$"。

只能輸入由數字和26個英文本母組成的字串:"^[a-za-z0-9]+$"。

只能輸入由數字、26個英文本母或者下劃線組成的字串:"^\w+$"。

驗證使用者密碼:"^[a-za-z]\w$"正確格式為:以字母開頭,長度在6~18之間,只能包含字元、數字和下劃線。

驗證是否含有^%&',;=?$\"等字元:"[^%&',;=?$\x22]+"。

常用正規表示式 以及 基本語法

號碼 1 3 4 5 7 8 0 9 身份證號 18位 1 9 d 1 9 d 0 d 1 0 2 0 1 2 d 3 0 1 d d xx 必須包含字母數字的6 10位密碼 0 9 a za z 0 9a za z 解析 分別表示匹配開始 結束位置 0 9 該位置後面不全是數字 a za z 該位...

正規表示式簡單語法及常用正規表示式

基本符號 表示匹配字串的開始位置 例外 用在中括號中 時,可以理解為取反,表示不匹配括號中字串 表示匹配字串的結束位置 表示匹配 零次到多次 表示匹配 一次到多次 至少有一次 表示匹配零次或一次 表示匹配單個字元 表示為或者,兩項中取一項 小括號表示匹配括號中全部字元 中括號表示匹配括號中乙個字元 ...

正規表示式簡單語法及常用正規表示式

表示匹配字串的開始位置 例外 用在中括號中 時,可以理解為取反,表示不匹配括號中字串 表示匹配字串的結束位置 匹配中文字元的正規表示式 u4e00 u9fa5 匹配雙位元組字元 包括漢字在內 x00 xff 匹配空行的正規表示式 n s r 匹配html標記的正規表示式 匹配首尾空格的正規表示式 s...