PHP正規表示式30分鐘入門教程

2021-09-07 06:51:20 字數 1685 閱讀 8627

正規表示式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以外...