| 用途 | 正則表達式 | 說明 |
|---|---|---|
| 非負整數 | ^\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]*))$ | |
^[\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 | 非單字邊界 |
(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|/|\.)+('|"| *|>)?\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*(s|S)(r|R)(c|C) *= *('|")?(\w|\\|/|\.)+('|"| *|>)?(\d+)\.(\d+)\.(\d+)\.(\d+)(86)*0*13\d{9}(-?\d*)\.\d+^(select|drop|delete|create|update|insert).*$
提醒: 正則表達式雖強大,但複雜模式難以維護。驗證邏輯建議搭配專用函式庫(如 filter_var()、Respect\Validation)使用,避免自寫正則導致漏洞或效能問題。