基本語法
界定符:
標識一個正規表示式的開始和結束,用'/'或'#'或'{ }',因為語法'{ }'也可能是正規表示式的運算符,為了避免混淆,所以不建議使用。建議的用法如下:
Copy$pattern = '/[0-9]/'; //我喜欢这个,看起来比较简洁 $pattern = '#[0-9]#';
原子:
#可見原子:Unicode編碼表中可用鍵盤輸出後肉眼可見的字符,例如:標點; . / ? 或英文字母,漢字等等可見字符
不可見原子:Unicode編碼表中可用鍵盤輸出後肉眼不可見的字符,例如:換行符\n,Tab製表符\t, 空格等等,
一般只用這三個(換行符一般和其他字元一起匹配,因為只有換行符是匹配不到的)
小提示:匹配運算符前面需要加'\' 例如:' ' 號,匹配的話需要寫出'\ '
元字元
原子的篩選方式:
| 匹配兩個或多個分支選擇
[] 匹配方括號中的任一個原子
[^] 匹配除方括號中的原子之外的任意字元;
範例:Duang|duang 或[Dd ]uang 都可以匹配到Duang和duang
區間寫法:[a-z]匹配a到z的字元, [0-9]匹配0到9的字元。也可以[a-z0-9]
. 匹配除換行符之外的任意字元
\d 匹配任一個十進制數字,即{0-9]
\D 匹配任一個非十進制數字[^0-9] 相當於[^\d]
\s 符合一個不可見的原子,即[\f\n\r\t\v]
\S 符合一個可見的原子,即[\f\n\r\t\v],相當於[\s]z
\w 符合任一個數字、字母或底線,即[0-9a-zA-Z_]
\W 匹配任一非數字、字母或底線,[0-9a-zA-Z_],相當於[\w]
量詞
{n} 表示前面的原子剛好出現了n次。
[n] 表示其前面的原子最少出現n次
{n,m} 最少出現n次,最多出現m次
* 匹配0次、一次或多次,即{0,}
符合一次或多次,即{1,}
? 符合0或1次,即{0,1}
##邊界控制
^ 匹配字串開始的位置$ 匹配字串結尾的位置
例:^John 可以匹配到:John 但是匹配不到:123John,因為規定了字串以John開頭
模式單元
() 符合其中的整體為一個原子, 如: (X|x)iaomi , 可以配對到xiaomi#修正模式
貪婪比對
存在歧義時取其長(預設)
#懶惰符合
符合結果存在歧義時取其短,只需在正規表示式的後面'/'加上'U',例如'/[0-9]/U';範例:
Copy$subject = "test__123123123"; preg_match('/test.+123/', $subject, $matches); //贪婪模式 var_dump($matches); preg_match('/test.+123/U', $subject, $matches); //懒惰模式var_dump($matches);常見的修正模式:
U 懶惰符合
i 忽略英文字母的大小寫x 忽略正規表示式的空白符
s 讓元字元'.' 匹配包括換行符在內的所有字元preg_match
##執行匹配正規表示式preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) : intpattern: 要搜尋的模式,字串型別。 subject:輸入字串。 match: 如果提供了參數matches,它將被填入搜尋結果,資料結構為一維數組。 flags: 可以設定為PREG_OFFSET_CAPTURE,使用搜尋結果的第0個元素為匹配的字串,第1個元素為對應的偏移量(位置)offset: 搜尋從目標字串的起始位置開始匹配。
傳回值:符合次數
類似函數preg_match_all,參數與preg_match一致
preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed###pattern:要搜尋的模式。可以是一個字串或字串數組。 replacement:用於替換的字串或字串陣列subject:要進行搜尋和替換的字串或字串陣列。 limit:替換的最大次數。預設是 -1(無限)。 count:替換次數。 ###類似函數preg_filter,參數與preg_replace一致###區別(使用數組進行匹配的時候才看得出區別):preg_replace:不管是否有替換,返回全部結果preg_filter:只返回匹配的結果。 ######preg_split######透過一個正規表示式分隔字串###
preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] ) : array
$pattrn:用于搜索的模式,字符串形式。subject:输入字符串limit:将限制分隔得到的子串最多只有limit个,返回的最后一个 子串将包含所有剩余部分。flags:有以下标记的组合:
-- 1. PREG_SPLIT_NO_EMPTY: 返回分隔后的非空部分。
-- 2. PREG_SPLIT_DELIM_CAPTURE: 用分隔符'()'括号把匹配的捕获并返回。
-- 3. PREG_SPLIT_OFFSET_CAPTURE: 匹配返回时将会附加字符串偏移量
PREG_SPLIT_DELIM_CAPTURE这个参数可能比较难明白,举个例子看看:
Copy$subject = "1a23b"; $a = preg_split('/[\d]/', $subject, -1, PREG_SPLIT_NO_EMPTY); var_dump($a); $a = preg_split('/([\d])/', $subject, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); var_dump($a);
输出如下:
array (size=2)
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array (size=5)
0 => string '1' (length=1)
1 => string 'a' (length=1)
2 => string '2' (length=1)
3 => string '3' (length=1)
4 => string 'b' (length=1)
preg_grep
返回匹配模式的数组条目
preg_grep ( string $pattern , array $input [, int $flags = 0 ] ) : array
$pattern:要搜索的模式,字符串形式$input:输入数组flags:如果不设置则返回匹配的数目,设置PREG_GREP_INVERT则返回不匹配的数目。
preg_quote
转义正则表达式字符,返回为转义后的字符串
preg_quote ( string $str [, string $delimiter = NULL ] ) : string
str:输入字符串delimiter:需要转义的字符串
以上是常用的php正規表示及文法註解總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

PHP用於構建動態網站,其核心功能包括:1.生成動態內容,通過與數據庫對接實時生成網頁;2.處理用戶交互和表單提交,驗證輸入並響應操作;3.管理會話和用戶認證,提供個性化體驗;4.優化性能和遵循最佳實踐,提升網站效率和安全性。

PHP在數據庫操作和服務器端邏輯處理中使用MySQLi和PDO擴展進行數據庫交互,並通過會話管理等功能處理服務器端邏輯。 1)使用MySQLi或PDO連接數據庫,執行SQL查詢。 2)通過會話管理等功能處理HTTP請求和用戶狀態。 3)使用事務確保數據庫操作的原子性。 4)防止SQL注入,使用異常處理和關閉連接來調試。 5)通過索引和緩存優化性能,編寫可讀性高的代碼並進行錯誤處理。

在PHP中使用預處理語句和PDO可以有效防範SQL注入攻擊。 1)使用PDO連接數據庫並設置錯誤模式。 2)通過prepare方法創建預處理語句,使用佔位符和execute方法傳遞數據。 3)處理查詢結果並確保代碼的安全性和性能。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP可以輕鬆創建互動網頁內容。 1)通過嵌入HTML動態生成內容,根據用戶輸入或數據庫數據實時展示。 2)處理表單提交並生成動態輸出,確保使用htmlspecialchars防XSS。 3)結合MySQL創建用戶註冊系統,使用password_hash和預處理語句增強安全性。掌握這些技巧將提升Web開發效率。

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

Atom編輯器mac版下載
最受歡迎的的開源編輯器

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

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

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中