深入了解php正規表示式
本篇文章主要介紹深入了解php正規表示式,有興趣的朋友參考下,希望對大家有幫助。
php正規表示式分享:
#1.建立正規表示式
$regex = '/\d/i';
與JavaScript中的第一個方式有點像,但這裡的話是個字串。
2.正規表示式中的特殊字元
#特殊字元有: . \ * ? [ ^ ] $ ( ) { } = ! < > | : -
#3.正規表示式中的函數
有8個方法,preg_match與preg_match_all,preg_replace與preg_replace_callback,preg_grep、preg_split、preg_last_error和preg_quote。
preg_match:
#執行一個正規表示式符合
#傳回pattern 的符合次數。它的值將是0次(不匹配)或1次,因為preg_match()在第一次匹配後,將會停止搜尋。
$subject = "dd133aa2"; $pattern = '/\d+/'; preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE); print_r($matches);
上面的範例程式碼加了參數“PREG_OFFSET_CAPTURE”,這樣的話,在$matches中會多一個偏移數。例如下面的“2”
preg_match_all:
執行一個「全域」正規表示式匹配
返回完整符合次數(可能是0),或如果發生錯誤返回FALSE。
下面的程式碼中$subject和$pattern跟上面的都一樣,唯一不同的是preg_match換成了preg_match_all。
preg_match_all($pattern, $subject, $matches, PREG_OFFSET_CAPTURE); print_r($matches);
回傳的次數是2,配對到了兩次,再看看陣列$matches中的輸入,有兩個。比上面的多了一個。
preg_replace:
執行一個正規表示式的搜尋與取代
#如果subject是一個數組, preg_replace()傳回一個數組, 其他情況下回傳一個字串。
如果匹配被查找到,替換後的subject被返回,其他情況下 返回沒有改變的 subject。如果發生錯誤,則傳回 NULL。
在程式碼中$subject是一個數組,裡面有兩組字串,接下來是將多個數字替換為大寫的「Z」。
$subject = array("dd133aa2", "kk1ff3"); $pattern = '/\d+/'; $result = preg_replace($pattern, 'Z', $subject); print_r($result);
#preg_replace_callback:
執行一個正規表示式搜尋並且使用一個「回呼」進行替換
#這個函數的行為除了可以指定一個callback替代replacement進行替換字符串的計算,其他方面等同於preg_replace(),包括傳回的結果。
下面的程式碼也是替換成大寫的“Z”,回呼函數中每次$matches中的內容就是程式碼中註解的部分,第一次是133,第二次是2。
$subject = "dd133aa2"; $pattern = '/\d+/'; $result = preg_replace_callback($pattern, function($matches) { //$matches [0] => 133 //$matches [0] => 2 return 'Z'; }, $subject); print_r($result);
preg_grep:
傳回符合模式的陣列項目
#傳回使用input中key做索引的陣列。
下面的範例程式碼中,在$subject數組中我加了個“ddsdfd”,裡面沒有包含數字,在做匹配的時候,就把這個沒數字的給過濾掉了。
而$result2印出來的剛好相反,是把過濾的印出來了,但是key還是為2,並不是0。
$subject = array("dd133aa2", "kk1ff3", "ddsdfd"); $pattern = '/\d+/'; $result = preg_grep($pattern, $subject); $result2 = preg_grep($pattern, $subject, PREG_GREP_INVERT); print_r($result); print_r($result2);
#preg_split:
透過一個正規表示式分隔字串
返回一个使用 pattern 边界分隔 subject 后得到 的子串组成的数组。
下面代码中,我将$pattern中的表达式加了括号,为了在$result2中捕获到。
$subject = "dd133aa2cc"; $pattern = '/(\d+)/'; $result = preg_split($pattern, $subject); $result2 = preg_split($pattern, $subject, null, PREG_SPLIT_DELIM_CAPTURE); print_r($result); print_r($result2);
preg_last_error:
返回最后一个PCRE正则执行产生的错误代码
preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar'); $result = preg_last_error();//PREG_BACKTRACK_LIMIT_ERROR 调用回溯限制超出 print_r($result);
preg_quote:
转义正则表达式字符
返回转义后的字符串。
下面的代码中,$subject中有两个需要转义的字符,“.”和“?”。
将$result打印出后是“dd\.a\?a2cc”,而在$result2中,多加了个参数“a”,这样的话“a”也会被转义,“dd\.\a\?\a2cc”
$subject = "dd.a?a2cc"; $result = preg_quote($subject); $result2 = preg_quote($subject, 'a'); print_r($result); print_r($result2);
4、模式修正符
总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。
相关推荐:
以上是深入了解php正規表示式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP正規表示式驗證:數位格式偵測在編寫PHP程式時,經常需要對使用者輸入的資料進行驗證,其中一個常見的驗證是檢查資料是否符合指定的數字格式。在PHP中,可以使用正規表示式來實現這種驗證。本文將介紹如何使用PHP正規表示式來驗證數字格式,並提供具體的程式碼範例。首先,讓我們來看看常見的數字格式驗證要求:整數:只包含數字0-9,可以以正負號開頭,不包含小數點。浮點

若要使用正規表示式在Golang中驗證電子郵件地址,請執行下列步驟:使用regexp.MustCompile建立正規表示式模式,以符合有效的電子郵件地址格式。使用MatchString函數檢查字串是否與模式相符。此模式涵蓋了大多數有效的電子郵件地址格式,包括:局部使用者名稱可以包含字母、數字和特殊字元:!.#$%&'*+/=?^_{|}~-`網域至少包含一個字母,後面可以跟字母、數字或連字符頂級域名(TLD)不能超過63個字符長

在Go中,可以使用正規表示式比對時間戳記:編譯正規表示式字串,例如用於匹配ISO8601時間戳記的表達式:^\d{4}-\d{2}-\d{2}T \d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ 。使用regexp.MatchString函數檢查字串是否與正規表示式相符。

Go語言作為一門現代化的程式語言,提供了強大的正規表示式和字串處理功能,使得開發者能夠更有效率地處理字串資料。掌握Go語言的正規表示式和字串處理,對於開發者來說是非常重要的。本文將詳細介紹Go語言中正規表示式的基本概念和用法,以及如何使用Go語言處理字串。一、正規表示式正規表示式是用來描述字串模式的工具,能夠方便地實現字串的匹配、尋找和替換等操

PHP正規表示式:精確匹配與排除模糊包含正規表示式是一種強大的文字匹配工具,能夠幫助程式設計師在處理文字時進行高效的搜尋、替換和篩選。在PHP中,正規表示式也被廣泛應用於字串處理和資料匹配。本文將重點介紹在PHP中如何進行精確配對和排除模糊包含的操作,同時結合具體的程式碼範例進行說明。精確匹配精確匹配意味著只匹配符合完全條件的字串,不匹配任何變種或包含額外字

Go中使用正規表示式驗證密碼的方法如下:定義正規表示式模式,符合最低密碼要求:至少8個字符,包含小寫字母、大寫字母、數字和特殊字符。使用regexp套件中的MustCompile函式編譯正規表示式模式。使用MatchString方法測試輸入字串是否與正規表示式模式相符。

PHP是一種廣泛應用的程式語言,特別在Web開發領域中非常流行。在網路開發過程中,經常會遇到需要對使用者輸入的文字進行過濾、驗證等操作,其中字元過濾是一項十分重要的操作。本文將介紹如何使用PHP中的正規表示式來實現中文字元過濾的功能,並給出具體的程式碼範例。首先,我們要先明確一下中文字元的Unicode範圍是從u4e00到u9fa5,也就是所有的漢字都處於這個範圍

正規表示式通配符有"."、"*"、"+"、"?"、"^"、"$"、"[]"、"[^]"、"[a-z]"、"[A-Z] "、"[0-9]"、"\d"、"\D"、"\w"、"\W"、"\s&quo
