首页 > 文章列表 > php中正则表达式有哪些常见的匹配模式?

php中正则表达式有哪些常见的匹配模式?

php 正则表达式
393 2024-10-30

PHP 正则表达式常見模式包含:字元類別、數量符、邊界符號和邏輯運算子。實戰案例:匹配電子郵件地址,模式為 /^([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$/。匹配數字,模式為 /d+/。匹配字元或數字,模式為 /w+/。

php中正则表达式有哪些常见的匹配模式?

PHP 中正则表達式常見的匹配模式

正則表達式(Regular Expression,簡稱 Regex)是一系列字符組成的模式,用於匹配特定格式的字串。在 PHP 中,使用 preg_match()preg_match_all() 等函數來進行正則表達式匹配。

常見的匹配模式有:

  • 字元類別:

    • d:數字
    • w:字元或數字
    • s:空白字元
    • .:任何字元
  • 數量符:

    • *:前一個元素零個或多個
    • +:前一個元素一個或多個
    • ?:前一個元素零個或一個
    • {n}:前一個元素重複 n 次
  • 邊界符號:

    • ^:表示字串的開頭
    • $:表示字串的結尾
  • 邏輯運算子:

    • |:或(匹配多個模式)
    • ():分組

實戰案例:

匹配電子郵件地址:

$email = "user@example.com";
$pattern = "/^([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$/";

if (preg_match($pattern, $email)) {
  echo "電子郵件地址有效";
} else {
  echo "電子郵件地址無效";
}

匹配數字:

$string = "123 Main Street";
$pattern = "/d+/";

preg_match_all($pattern, $string, $matches);

print_r($matches[0]); // 印出所有匹配的數字:["123"]

匹配字元或數字:

$string = "Username123";
$pattern = "/w+/";

preg_match_all($pattern, $string, $matches);

print_r($matches[0]); // 印出所有匹配的字元或數字:["Username123"]