1.什么是正则表达式
正则表达式就是记录文本规则的代码
正则表达式是由普通字符(例如字符 a A到 zZ)以及特殊字符(称为元字符)组成的文字模式。
正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
在处理程序或网页时,经常会有查找或替换符合某些复杂规则的字符串的需要。
作用
①对表单域项目(用户名、密码、邮箱、qq号码、手机等等)进行验证
13\d{9}
[1-9]\d{4,11}
②网络爬虫(信息采集)(一个网站到另一个网站的页面上去获取对方的相关信息)
③获取天气预报信息(或者获取其他网站的其他信息)
④内容替换、获取
正则表达式简单使用:
4.使用正则
正则组成内容:
普通字符(字母/数字/标点符号/特殊符号)、定义字符集、组合字符集、特殊字符集、限制字符集、模式修正符等
4.1 定义字符集组成
4.2 特别字符集组成
-
- ? +
- ? +
- .点 \ |
- ^和$符号
- ()小阔号
在正则里边小括号内容要体现在结果里边:
下图:
rst[1] 访问第一个小括号内容
rst[2] 访问第二个小括号内容
rst[n] 访问第n个小括号内容
小括号提供子表达式优先级
从一个大的字符串中拆分小的字符串出来:
4.3 模式修正符组成
var 模式名称 = /模式内容/模式修正符;
模式修正符:
i------>忽略大小写
g----->全局匹配(进行全局匹配的时候不给体现“模式单元”内容)
(默认是单次匹配,非全局)
()小括号使用
作用:
①提高子表达式优先级
②从大的字符串中拆分小的内容出来(模式单元)
③小括号模式单元 重复使用
模式单元重复使用:
上面那个要注意,小括号里面的值要求是与后面的值要一样,比如改成str=“2015-06-09 09:09:09”,那么结果就显示为null,因为小括号里面代表的值是06,如果要正确,\1中代表的
\m模式单元重复使用 与 {m}、+、的区别:
前边的单元出现多次的表示
① \m\m\m\m 限制前边单元出现多次 重复匹配前边第m个小括号内容
要求 匹配内容与被匹配内容的“大小和数据类型“都一致
② {m}、+、 限制前边单元出现多次,出现的多次内容只要保证"数据类型"一致即可
小括号计数方法:
三.组合和限制字符
1.组合字符
2.限制字符
四. 正向反向预查
1.正向预查
辅助条件 都在查找内容的右边。
1.1 正向匹配
我们要查找出来的内容,右边必须出现指定的信息,并且其是辅助条件,不是结果的一部分。
var reg = /pattern(?=模式)/; 蓝色是辅助条件(可以通过具体“正则模式”进行设置)
例如:
小写字母字符串右边要出现连续数字信息
var reg = /[a-z]+(?=\d+)/;
beijing2008 xianggang1997 aomen1999
LiaoNing014 ShanDong2013
1.2 正向不匹配
我们要查找出来的内容,右边不能出现指定的信息,右边的信息是辅助条件,非结果部分。
var reg = /pattern(?!模式)/; 蓝色是辅助条件,可以通过具体“正则模式”进行设置
例如:
today后边不能出现连续数字信息
var reg = /today(?!\d+)/;
today### todayABC254 today_good
javascript中正向预查(匹配和不匹配)使用:
2. 反向预查(php支持)
辅助条件在被查询内容的左边
2.1 反向匹配
左边必须出现指定信息
var reg = /(?<=模式)pattern/; //pattern是被匹配内容,左边蓝色是辅助条件
2.2 反向不匹配
左边不能出现指定信息
var reg = /(?<!模式)pattern/; //pattern是被匹配内容,左边蓝色是辅助条件
php中正则表达式使用:
php中反向预查(匹配和不匹配)使用:
正则案例
1 正则匹配ip地址
2.正则匹配邮箱
3.校验注册表单项目
正则主要内容