當前位置: 首頁> 最新文章列表> PHP正則表達式詳解與實用示例指南

PHP正則表達式詳解與實用示例指南

M66 2025-08-04

PHP正則表達式詳解

正則表達式在PHP中是處理字符串匹配和操作的強大工具,廣泛應用於數據驗證、提取和替換等場景。本文將系統介紹PHP中正則表達式的基本用法及實戰示例,助力讀者快速掌握其精髓。

基本的正則表達式語法

PHP中最常用的正則匹配函數是preg_match() ,其核心正則語法如下:

  • 元字符:
    • ^ :匹配字符串開頭
    • $ :匹配字符串結尾
    • . :匹配任意單個字符
    • * :匹配前一個字符零次或多次
    • + :匹配前一個字符一次或多次
    • ? :匹配前一個字符零次或一次
    • [] :匹配括號內的任意一個字符
    • | :邏輯“或”操作符
    • () :分組操作符
  • 特殊字符:
    • \d :匹配數字
    • \w :匹配字母、數字及下劃線
    • \s :匹配空白字符
  • 量詞:
    • {n} :匹配前一字符恰好n次
    • {n,} :匹配前一字符至少n次
    • {n,m} :匹配前一字符至少n次,最多m次

常見正則表達式示例

匹配Email地址

$email = "example@example.com";
if(preg_match("/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/", $email)){
    echo "Email地址有效!";
}else{
    echo "Email地址無效!";
}

匹配手機號碼

$phone = "13812345678";
if(preg_match("/^1[3456789]\d{9}$/", $phone)){
    echo "手機號碼有效!";
}else{
    echo "手機號碼無效!";
}

提取HTML標籤內的內容

$html = '<div><p>Hello, World!</p></div>';
preg_match("/<p>(.*?)<\/p>/", $html, $matches);
echo "提取到的內容為:" . $matches[1];

替換字符串中的內容

$oldStr = "Hello, PHP!";
$newStr = preg_replace("/PHP/", "World", $oldStr);
echo "替換後的字符串為:" . $newStr;

判斷字符串是否包含特定字符

$str = "Hello, World!";
if(preg_match("/World/", $str)){
    echo "字符串包含'World'!";
}else{
    echo "字符串不包含'World'!";
}

正則表達式的高級應用

除了基本匹配,正則表達式還支持捕獲組和斷言,能實現更加複雜的匹配邏輯。以下示例演示如何提取包含特定關鍵詞的句子:

 $text = "I love PHP. PHP is a powerful language. PHP is widely used.";
preg_match_all("/(.*?PHP.*?)./", $text, $matches);
foreach($matches[1] as $sentence){
    echo $sentence . ".";
}

通過本文實例,您可以全面理解PHP正則表達式的語法和實用技巧,進而靈活應用於日常開發任務中。正則表達式是處理字符串的利器,熟練掌握將極大提升編碼效率和代碼質量。希望本文內容對您的學習有所幫助,歡迎結合項目實際繼續探索與實踐。