preg_match(pa
terr
n,str);判斷是否匹配
preg_replace(pa
tter
n,replace,st
r);將
符合的部
分替換為
replace,其中()內為一部分
. 此處占有乙個字元
* 匹配前面的》=0個字元
+ 匹配前面的》=1個字元
? 匹配前面的0個或者1個字元
[abc,,] 匹配1個字元
(a|b|c) 匹配乙個,對於|在最外邊加(),不用每個都加,例如(abdk|abd'fj)這樣
匹配前面的n個字元
匹配前面的至少n個字元,小於m個
匹配前面的》=n個字元
\ 轉義
\w [0-9
a-za-z]還有下劃線,外文
\d [0-9]
\s 空白字元
() 是為了提取匹配的字串。表示式中有幾個()就有幾個相應的匹配字串。
(a|b\c)? 匹配圓括號內0次或者1次
.* 匹配任何字元或者空白
郵箱
根據規則來:郵箱名可能包含-+.這樣的字元,可以將\w放在中
\w+
[\w+-.]
*@[a-za
-z0-9]
+\.[a-za-z]
ip4
/^((\d|1\d|2[0-4]\d|25\d).)(\d|1\d|2[0-4]\d|25\d)$/
驗證身份證號(15位或18位數字)
/^\d|\d$/
非0負整數
/^-[1-9]\d*$/」;
驗證使用者密碼:以字母開頭,長度在6~18之間,只能包含字元、數字和下劃線
/^[a-za-z][a-za-z0-9_]$/
驗證是否含有^%&』,;=?$\」等字元, 這一特殊意義的字元要加上\
/[\^%&』,;=?\$\」]+/ 這樣^前面加上轉義
正數、負數、和小數
/^-? \d+( .\d+)?$/
浮點數
/^-?\d+.\d+$/
開頭或結尾有空白\s
/(^\s.*|.*\s
$)/
使用者名稱:中文
貪婪匹配和非貪婪匹配
對於量詞,例如 + ? *
貪婪匹配:在匹配成功的情況下,盡可能多的匹配;
非貪婪匹配:忽略量詞,在量詞後面加上? 。在匹配成功的情況下,盡可能少的匹配;
轉義:
addslashes 往資料庫中傳送資料,對於預定義的符號(』」 null \)加上\轉義
htmlspecialchars 將字串轉為html實體,對於預定義的符號(下面五種)轉換為html實體。
& (和號) 成為&
」 (雙引號) 成為"
』 (單引號) 成為'
< (小於) 成為<
(大於) 成為》可以防止xss攻擊。
正規表示式貪婪匹配
個人感覺對正規表示式理解的還算多的,貪婪模式也用過,但是最近匹配位址資訊的時候老是出錯 如下 寧波 鄞州 21.59901313997095 29.80867802546617 寧波鄞州區鄞縣大道萬科桂語裡小區 盲點小區 編號 fg 2019 寧波 鄞州 21.59901313997095 29.8...
正規表示式 貪婪匹配
例如 booooooaaobbbbbyy 匹配規則 b.b 匹配結果 bbb 個人理解,根據正規表示式會盡可能多的匹配字串,所以,第一次匹配時會將整個字串匹配下來,並記錄回溯點 最後乙個y 然後繼續根據匹配規則進行匹配,即匹配b,結果引擎發現沒有b,於是進行回溯,會將之前匹配的字串從右到左 吐 出乙...
正規表示式 非貪婪匹配
先來看個例子 final static string text 999www.chinoukin.com 888 final static string regex public static void main string args 預想輸出結果 999 b 888 b 實際輸出結果 999 b...