?
代表前面乙個字元出現0次或1次
例子:dj?
d 匹配
dj 匹配
djjj 不匹配
*
代表前面乙個字元可以出現0次或任意次
例子:abc
ac 匹配
abc 匹配
abbbc 匹配
adc 不匹配*
+
代表前面乙個字元出現1次及以上
例子:ab+c
ac 不匹配
abc 匹配
abbbc 匹配
adc 不匹配
限定字元出現次數
abc 代表b出現3次
abc 代表b出現3到6次
abc 代表b出現3次及以上
想同時對多個字元限定時用括號括起來
a(bc)d 代表bc出現2次
|
匹配兩者中的任意乙個
[ ]
匹配的字元只能取自[ ]中的字元
例子:[abc]+ 只能匹配由abc中的字母組成的字串
[a-z]+ 只能匹配小寫字母組成的字串
[a-za-z0-9]+ 只能配小寫字母大寫字母數字0到9組成的字串
^代表要求匹配除尖號後面列出的以外的字元
[^0-9] 只能匹配非數字字元
\d代表數字字元
相當於[0-9]
\w代表單詞字元,即所有英文本元加數字加下劃線
\s代表空白符
同時包含 tab字元和換行符
\d代表非數字字元
\w代表非單詞字元
\s代表非空白字元
.代表任意字元
但不包括換行符
^匹配行首 $匹配行尾
^a 只會匹配行首的a
b$ 只會匹配行尾的b
例子: <.>
>
字串:
this
is a test<
/b>
<
/span>
這將會匹配整個字串 因為也在任意字元範圍內 所以預設貪婪匹配將匹配整個字串
例子: <.>
?>
字串:
this
is a test<
/b>
<
/span>
加了?後會將貪婪匹配切換為懶惰匹配
結果如下
1.匹配rgb顏色值#[a-fa-f0-9]\b
#號開頭
顏色值只能包含a-f a-f 0-9這些字元 且只有6位
末尾加入\b來代表單詞字元的邊界
2.匹配ip位址
((25[0-5]|2[0-4]\d|[01]?\d\d?).)(25[0-5]|2[0-4]\d|[01]?\d\d?)\b
先匹配一段
如果是25開頭,第三個只能是0-5中的數字
如果是20到24開頭,第三個可以是任意數字
如果是0或1開頭,第二個和第三個可以是任意數字
由於位數可以是1位或兩位所以寫成[01]?\d\d?或[01]?\d?\d
在數字後面加上點號.
重複三次
最後再來一組和前面一樣規則的數字
總結
github上的學習資料
學習資料
這個要梯子
正規表示式快速入門
你是不是經常忘記正規表示式中的語法規則 優先順序順序 界定符 定位符等等,每次看了忘忘了看,怎麼辦的,多練習或者小抄本記起來!1 常用元字元 匹配處換行符以外的任意字元 w匹配字母或數字或下劃線或漢字 s匹配任意的空白符 d匹配數字 b匹配單詞的開始或結束 匹配字串的開始 匹配字串的結束 2 常用限...
正規表示式快速入門
一 元字元 w,s,b,d 1.後面四個有相應的大寫,表反義。匹配行開頭,只有當其在 中表示 非 2.b 匹配單詞的開始或結束,而 匹配除換行符外的任意字元。eg 匹配乙個非空行 bstr 匹配 str開頭的字串 二 重複 請叫上面四位為 四大金剛 0個或多個 個或多個 個或 個 有三種寫法,和 不...
正規表示式快速入門
匹配除了換行符以外的任何字元 w 匹配字母或數字或下劃線或漢字 s 匹配任意的空白符 d 匹配數字 b 匹配單詞的開始或結束 匹配字串的開始 匹配字串的結束 匹配除了換行符以外的任何字元,算是 w 的加強版了 w 不能匹配 空格 如果把字串加上空格用 w 就受限了,看下用 如何匹配字元 b hj 4...