正则表达式 自学

一、正则表达式中的“原子”

1、a-z A-Z _ 0-9  //最常见的字符

2、(abc) (akd)  //用圆括号包含起来的单元集合

3、[abcs] [^abd]  //用方活号包含的原子表,原子表中的^代表排除或相反内容

4、转义字符

\d  //包含所有数字[0-9]

\B  //除所有数字年[^0-9]

\w  //包含所有英文字符[a-zA-Z]

\W  //除所有英文字符外[^a-zA-Z]

\s  //包含空白区域如回车、换行、分页等[\f\n\r]

/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)
/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)

......


小例 子:

$mode = "/(sd)/";
$str = "a;dfjs;ldfjsdlsdfkjsdfwefsdfasdgfsdf";
if (preg_match($mode, $str, $arr)) {
echo "匹配成功" . $arr[0];
}
else {
echo "匹配失败";
}


二、正则表达式元字符

* 匹配前一个内容的0次1次或多次

. 匹配内容的0次1次或多次,但不包含回车换行

+ 匹配前一个内容的1次或多次

? 匹配前一个内容的0次或1次

| 先择匹配类似PHP中的|(因为这个老实巴交算符是弱类型导致前面为整体匹配)

^ 匹配字符串首部内容

$ 匹配字符串尾部内容

\b 匹配单词边界,边界可以是空格或者特殊符合

\B 匹配除带单词边界意外内容

{m} 匹配前一个内容的重复次数为m次

{m,} 匹配前一个内容的重复次数大于等于m次

{m,n} 匹配前一个内容的重复次数m次到n次

() 合并整体匹配,并放入内存,可使用\1\2...依次获取


三、运算顺序

依然遵循从左到右的运算规则

优先级:

1、() 圆括号因为是内存处理所以最高

2、* ? + {} 重复匹配内容其次

3、^ $ \b 边界处理第三

4、| 条件处理第四

5、最后按照运算顺序计算匹配


四、匹配特殊字符

$frmvObj->add_rule("empName","r1(reg[".base64_encode("[^@#\$%\^&\*]+$")."])",array("姓名不能包含特殊字符!"),"请填写姓名");


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值