首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

PHP 正則表達式特殊字元完整速查表 (PCRE 語法)

     編輯:MySQL 資料庫相關知識

元字元速查總表

字元名稱意義範例匹配結果
\轉義下一字元為字面義,或賦予特殊意義\.匹配字面點號
^行首錨點匹配字串/行開頭^A"Apple" ✓, "an Apple" ✗
$行尾錨點匹配字串/行結尾t$"cat" ✓, "tea" ✗
*零或多前一元素 0~n 次ab*c"ac", "abc", "abbc"...
+一或多前一元素 1~n 次 {1,}a+"a", "aaa"...
?零或一前一元素 0~1 次 {0,1}colou?r"color", "colour"
.萬用字元除換行外任意單字元a.c"abc", "a-c"...
(...)捕獲群組匹配並記憶,反向參考 \1(foo)bar\1"foobarfoo"
(?:...)非捕獲群組僅分組不記憶,效能較好(?:foo|bar)"foo" 或 "bar"
|或左右任一分支cat|dog"cat" 或 "dog"
{n}固定次數恰好 n 次a{3}"aaa"
{n,}至少 n 次n ~ 無限a{2,}"aa", "aaa"...
{n,m}範圍次數n ~ m 次a{1,3}"a", "aa", "aaa"
[abc]字元類別匹配列表中任一字元[aeiou]任一母音
[^abc]否定類別匹配非列表字元[^0-9]非數字
\d數字簡寫[0-9]\d{4}4 位數字
\D非數字[^0-9]
\w單字字元[A-Za-z0-9_]
\W非單字[^A-Za-z0-9_]
\s空白字元[ \t\r\n\f\v]
\S非空白[^ \t\r\n\f\v]
\b單字邊界單字與非單字交界\bcat\b"cat" ✓, "catfish" ✗
\B非單字邊界單字內部\Bcat\B"scatter" ✓
\n換行LF (0x0A)
\r回車CR (0x0D)
\t定位符Tab (0x09)
\v垂直定位VT (0x0B)
\f換頁FF (0x0C)
\ooo八進制ASCII 碼 (如 \040=空格)
\xhh十六進制ASCII 碼 (如 \x20=空格)

貪婪 vs 惰性量詞

貪婪 (預設):  *  +  {n,}  {n,m}   -- 盡可能多匹配
惰性 (加 ?):  *?  +?  {n,}?  {n,m}? -- 盡可能少匹配
範例:  "abbbc"  /ab*?/  → "a" (匹配 0 個 b)
       "abbbc"  /ab*/   → "abbb" (匹配 3 個 b)

常用模式範例

  • Email: /^[\w.+-]+@[\w-]+\.[\w.-]+$/
  • URL: /^https?:\/\/[\w.-]+\.[a-z]{2,}/i
  • 中文: /[\x{4e00}-\x{9fa5}]+/u (需 u 修飾符)
  • 手機 (台): /^09\d{8}$/
  • 身分證: /^[A-Z][12]\d{8}$/

修飾符

修飾符意義
i忽略大小寫
m多行模式 (^$ 匹配行首尾)
s單行模式 (. 匹配換行)
uUTF-8 模式 (支援 Unicode 屬性 \p{Han})
x延伸格式 (忽略模式中空白、允許註解)

PHP 函數族

preg_match()     -- 單次匹配
preg_match_all() -- 全局匹配
preg_replace()   -- 替換
preg_split()     -- 分割
preg_grep()      -- 陣列過濾
preg_quote()     -- 轉義字串用於模式

收藏此表,寫正則不再查文件!

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