一、匹配中英文php
//匹配中文,匹配四個 preg_match_all('/^[\x{4E00}-\x{9FA5}]{1,4}/u', $getpost['name'], $matches, PREG_SET_ORDER, 0) //匹配英文: preg_match('/^[a-zA-Z|[:blank:]]{1,20}/is', $getpost['name'], $matches, PREG_OFFSET_CAPTURE, 0)
解釋下一些正則修飾符正則表達式
i
不區分(ignore)大小寫;
例如:post/abc/i 能夠匹配 abc、aBC、Abc
g
全局(global)匹配
若是不帶g,正則過程當中字符串從左到右匹配,找到第一個符合條件的即匹配成功,返回
若是帶g,則字符串從左到右,找到每一個符合條件的都記錄下來,知道字符串結尾位置
例如:網站var str = 'aaaaaaaa' var reg1 = /a/; str.match(reg1) // 結果爲:["a", index: 0, input: "aaaaaaaa"] var reg2 = /a/g; str.match(reg2) // 結果爲:["a", "a", "a", "a", "a", "a", "a", "a"]
m
多(more)行匹配
若存在換行\n而且有開始^或結束$符的狀況下,和g一塊兒使用實現全局匹配,
由於存在換行時默認會把換行符做爲一個字符任務匹配字符串是個單行,
g只匹配第一行,添加m以後實現多行,每一個換行符以後就是開始codevar str = "abcggab\nabcoab"; var preg1 = /^abc/gm; str.match(preg1) // 結果爲:["abc", "abc"] var preg2 = /ab$/gm; str.match(preg2) // 結果爲:["ab", "ab"]
s
特殊字符圓點 . 中包含換行符
默認的圓點 . 是 匹配除換行符 \n 以外的任何單字符,加上s以後, . 中包含換行符字符串$str = "abggab\nacbs"; $preg = "/b./s"; preg_match_all($preg, $str,$matchs); print_r($matchs);//Array ( [0] => Array ( [0] => bg [1] => b [2] => bs ) )
正則表達式網站get