正規表示式30分鐘入門教程
三個常用的知識點:
1、惰性匹配:正則引擎預設是貪婪的,若要最少重複的話,需要用到惰性匹配符 「?」
懶惰限定符
**/語法
說明*?
重複任意次,但盡可能少重複
+?重複1次或更多次,但盡可能少重複
??重複0次或1次,但盡可能少重複
?重複n到m次,但盡可能少重複
?重複n次以上,但盡可能少重複
參考:
2、不捕獲性匹配: 一方面不占用反向應用組號,另一方面提高了匹配效率
(?:exp) // 匹配exp,不捕獲匹配的文字,也不給此分組分配組號參考:
3、php正規表示式模式修飾符詳解
模式修正符號
功能描述
i【忽略大小寫】在和正則匹配是不區分大小寫
m【多行模式】
說法1:啟用的話,^和$將匹配行的開始於結束;不啟用的話,^和$將匹配整個字串的開始於結束;
說法2:將字串視為多行。預設的正則開始「^」和結束「$」將目標字條串作為一單一的一「行」字元(甚至其中包括換行符也是如此)。如果在修飾符中加上「m」,那麼開始和結束將會指點字串的每一行的開頭就是「^」結束就是「$」。
s【單行模式】
說法1:句點(.)可以匹配任意字元,包括換行符(\n);
說法2:如果設定了這個修正符,那麼,被匹配的字串將視為一行來看,包括換行符,換行符將被視為普通字串。
x【忽略空白】
說法1:啟用的話,將會忽略正規表示式中的空白字元(空格,換行等),並且會忽略(#注釋)格式的內聯注釋。在次模式下,任然可以使用\s等元字元來匹配空白字元。
說法2:忽略空白,除非進行轉義的不被忽略。
e只用在preg_replace()函式中,在替換字串中逆向引用做正常的替換,將其(即「替換字串」)作為php**求值,並用其結果來替換所搜尋的字串。
php函式preg_replace() 正則替換所有符合條件的字串
用preg_replace_callback 代替 preg_replace a
如果使用這個修飾符,那麼表示式必須是匹配的字串中的開頭部分。比如說」/a/a」匹配」abcd」。
d模式中的$字元權匹配目標字元的結尾。沒有此選項時,如果最後乙個字元是換行符的話,美元符號也會匹配此字元之前。如果設定了修正符m則忽略此項。
e與」m」相反,如果使用這個修飾符,那麼」$」將匹配絕對字串的結尾,而不是換行符前面,預設就開啟了這個模式。
u貪婪模式,和問號的作用差不多,最大限度的匹配就是貪婪模式。
常用的元字元
**說明.
匹配除換行符(\r\n,\r,\n)以外的任意字元
\w匹配字母或數字或下劃線或漢字
\s匹配任意的空白符,包括空格、製表符(tab)、換行符、中文全形空格等
\d匹配數字
\b匹配單詞的開始或結束
^匹配字串的開始
$匹配字串的結束
正規表示式30分鐘入門筆記
1 b是正規表示式規定的乙個元字元,代表著單詞的開頭或結尾,也就是單詞的分界處。如果要精確地查詢hi這個單詞的話,我們應該使用 bhi b 2 是另乙個元字元,匹配除了換行符以外的任意字元 3 同樣是元字元,它代表的不是字元,也不是位置,而是數量 它指定 前邊的內容可以連續重複使用任意次以使整個表示...
正規表示式30分鐘入門教程
30分鐘內讓你明白正規表示式是什麼,並對它有一些基本的了解,讓你可以在自己的程式或網頁裡使用它。最重要的是 請給我30分鐘,如果你沒有使用正規表示式的經驗,請不要試圖在30秒內入門 除非你是超人 別被下面那些複雜的表示式嚇倒,只要跟著我一步一步來,你會發現正規表示式其實並沒有你 想像中的那麼困難。當...
正規表示式30分鐘入門教程 2
有時需要查詢不屬於某個能簡單定義的字元類的字元。比如想查詢除了數字以外,其它任意字元都行的情況,這時需要用到反義 表3.常用的反義 語法 說明 w 匹配任意不是字母,數字,下劃線,漢字的字元 s 匹配任意不是空白符的字元 d 匹配任意非數字的字元 b 匹配不是單詞開頭或結束的位置 x 匹配除了x以外...