首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 常用正則表達式大全:驗證、擷取、替換實用模式

     編輯:PHP 綜合知識

常用驗證型正則

用途正則表達式說明
非負整數^\d+$正整數 + 0
正整數^[0-9]*[1-9][0-9]*$
非正整數^((-\d+)|(0+))$負整數 + 0
負整數^-[0-9]*[1-9][0-9]*$
整數^-?\d+$
非負浮點數^\d+(\.\d+)?$正浮點數 + 0
正浮點數^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
Email^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$通用格式
URL^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$
日期 (YYYY-MM-DD)^(\d{2}|\d{4})-((0[1-9])|(1[0-2]))-(([0-2][1-9])|(3[01]))$
身分證字號 (台)^[A-Z][12]\d{8}$首碼英文+性別碼+8位數字
手機號碼 (台)^09\d{8}$
IPv4 位址^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$
中文字符^[\u4e00-\u9fa5]+$僅中文
中英數底線^[\u4e00-\u9fa5_a-zA-Z0-9]+$
帳號 (字母開頭,5-16字元)^[a-zA-Z][a-zA-Z0-9_]{4,15}$
郵遞區號 (台)^\d{3,5}$3或5碼
QQ 號碼^[1-9][0-9]{4,}$5位以上,首位非0

常用元字符與語法速查

元字符說明
\轉義字元,或標示特殊序列(如 \d)
^字串開頭(多行模式下也匹配行首)
$字串結尾(多行模式下也匹配行尾)
*前面子表達式出現 0 次或多次({0,})
+前面子表達式出現 1 次或多次({1,})
?前面子表達式出現 0 次或 1 次({0,1})
{n}確定出現 n 次
{n,}至少出現 n 次
{n,m}出現 n 到 m 次
? (緊跟限制符後)非貪婪模式(儘可能少匹配)
.匹配除換行符外任意單字元
(pattern)捕獲組,可供後向引用
(?:pattern)非捕獲組,不佔用引用編號
(?=pattern)正向前瞻,零寬斷言
(?!pattern)負向前瞻,零寬斷言
x|y匹配 x 或 y
[xyz]字元集合
[^xyz]排除字元集合
[a-z]字元範圍
\d數字 [0-9]
\D非數字 [^0-9]
\w單字字元 [A-Za-z0-9_]
\W非單字字元
\s空白字元(空格、Tab、換行等)
\S非空白字元
\b單字邊界
\B非單字邊界

前端表單輸入限制範例 (JavaScript)












資訊擷取型正則

  • 網頁連結: (h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|/|\.)+('|"| *|>)?
  • Email: \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
  • 圖片連結: (s|S)(r|R)(c|C) *= *('|")?(\w|\\|/|\.)+('|"| *|>)?
  • IP 位址: (\d+)\.(\d+)\.(\d+)\.(\d+)
  • 手機號碼 (含國碼): (86)*0*13\d{9}
  • 浮點數: (-?\d*)\.\d+

SQL 關鍵字攔截 (簡易防注入)

^(select|drop|delete|create|update|insert).*$

提醒: 正則表達式雖強大,但複雜模式難以維護。驗證邏輯建議搭配專用函式庫(如 filter_var()、Respect\Validation)使用,避免自寫正則導致漏洞或效能問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved