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

PHP 正則表達式入門:模式匹配、字符簇與實用範例詳解

     編輯:PHP 相關知識

基礎元字符

符號含義範例
^字符串開頭^php 匹配 "php is great"
$字符串結尾great$ 匹配 "php is great"
.任意單字符(除換行)p.p 匹配 "php", "pap"
*前導字符 0 次或多次ab*c 匹配 "ac", "abc", "abbc"
+前導字符 1 次或多次ab+c 匹配 "abc", "abbc"
?前導字符 0 次或 1 次ab?c 匹配 "ac", "abc"
\轉義特殊字符\. 匹配字面點號

字符簇 []

[aeiou]      // 任一元音
[0-9]         // 任一數字
[a-zA-Z0-9]   // 字母數字
[^0-9]        // 非數字(^ 在 [] 內表示取反)
[\d\w\s]      // 簡寫:數字、單字字符、空白

分組與選擇

(php|perl|python)  // 匹配三種語言名稱
(?:non-capture)      // 非捕獲分組,僅用於結構

實用範例

Email 簡易驗證

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

手機號(中國大陸)

^1[3-9]\d{9}$

去除 HTML 標籤

preg_replace('/<[^>]+>/', '', $html);

PHP 專用函數

  • preg_match():單次匹配,返回 0/1。
  • preg_match_all():全局匹配,返回所有結果陣列。
  • preg_replace():搜尋替換,支援回溯引用 $1。
  • preg_split():正則分割字符串。

效能提示

  • 能用 strpos/str_replace 解決的不要用正則。
  • 避免過度嵌套量詞(如 (a+)*),導致災難性回溯。
  • 大量數據預先編譯:$re = '/pattern/'; 循環外定義,避免重複編譯。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved