一直以為正則方括號內的短橫線是要轉義的,例:
[a-z\-]
其實「-」在緊挨邊界的時候不需要轉義,也就是說可以寫成:
[a-z-] 或 [-a-z]
經過自己驗證,我們暫且稱「a-z」為「組」,結論是「在方括號邊界或是組邊界的都不需要轉義。」
[a-z-0-9]
再試一試發現這樣也可以,這樣結論又變成「只要短橫線(-)不能構成組,就可以不專一」,不知道這樣說是否嚴密。
[a-z!-0-9] 或 [a-z!-@0-9]
以上結論沒有試過多種語言的結果是否一致。
至於何時轉義,如果弄不清,還是統統轉義吧!
----------------------------------------------我是分割線-----------------------------------------------
^[\w]-$ 表示字母數字下劃線+短橫槓
郵箱的正規表示式 可以匹配[email protected]
/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z])$/
<?php
$mail = '[email protected]'; //郵箱位址
$pattern = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z])$/";
preg_match($pattern, $mail, $matches);
var_dump($matches); //輸出匹配結果
?>
正規表示式轉義
除 d d 正確格式為 x x,x xx,x,xx,x,xx。驗證身份證號 15位或18位數字 d d 18 驗證一年的12個月 0?1 9 1 0 2 正確格式為 01 09 和 1 12 驗證乙個月的31天 0?1 9 1 2 0 9 30 31 正確格式為 01 09和1 31。整數 d 非負...
正規表示式 轉義
別字元 說明 匹配輸入字串的結尾位置。如果設定了 regexp 物件的 multiline 屬性,則 也匹配 n 或 r 要匹配 字元本身,請使用 標記乙個子表示式的開始和結束位置。子表示式可以獲取供以後使用。要匹配這些字元,請使用 和 匹配前面的子表示式零次或多次。要匹配 字元,請使用 匹配前面的...
正規表示式示例
表示式匹配 s 匹配空行。d d 驗證由兩位數字 乙個連字元再加 5 位數字組成的 id 號。s s s s s s 1 s 匹配 html 標記。下表包含了元字元的完整列表以及它們在正規表示式上下文中的行為 字元說明 將下一字元標記為特殊字元 文字 反向引用或八進位制轉義符。例如,n 匹配字元 n...