PHP常用正则

PHP常用正则

1、匹配中英文

//匹配中文,匹配四个
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)大小写;
例如:

/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之后实现多行,每个换行符之后就是开始

var 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 ) ) 

正则表达式网站

posted @ 2019-03-05 09:52  roverliang  阅读(638)  评论(0编辑  收藏  举报