正则表达式(regular expression)
概述
一种字符串匹配的模式
1.匹配就是在某个字符串查找你想要查找的内容,如果找到了就匹配,找不到就不匹配
2.正则表达式也是用于查找字符串的,只是比正常的查找更加高级
应用
表单验证
信息过滤
信息采集
信息替换
伪静态
用法
match() //它用于匹配查找的内容
正则表达式写法就是两条斜线作为起始和结尾的标识符。正则语法要写到 “//”之间。
'php'.match(/h/);
全局修饰符g
修饰符应该放到定界符(/)的后面,在正则中,只有修饰符可以放到 / 的后面
'php'.match(/h/g);
语法
量词
n+ //匹配任何包含至少一个n的字符串
n* //匹配零个或多个
n? //零个或一个
n{x} //数量
n{x,} //x到无穷
n{x,y} //x到y
n{x,y}$ //$检测字符串的结尾是否匹配
^n{x,y} //^检测字符串的开头是否匹配
^n$ //匹配整个字符串
元字符
. // 表示单个任意字符
.* //任意字符串
\w //匹配一个任何数字、字母、下划线
\W //匹配任何非数字、字母、下划线
\d //匹配数字
\D //匹配非数字
\s //匹配空白
\S //匹配非空白
\b //单词边界,没有个数限制
\B //匹配非单词边界,没有个数限制
\n //查找换行符
\r //查找回车符
\t //查找制表符
方括号
方括号表示一个范围,也称为字符簇
[n] //匹配方括号里面所有的字符
^[n] //^匹配开头是里面所有字符
[^n] //将匹配结果取反
[0-9] //匹配从0 -9 的数字
[a-z] //匹配从a -z 的字符
[A-Z] //匹配从A-Z 的字符
[A-z] //匹配所有大写小写a-z,包括下划线
[5-8] //匹配5<=目标<= 8的字符
(red|blue|green) //查找任何指定的选项;竖线|表示或者
修饰符
g //全局匹配
i //不区分大小写
m //执行多行匹配
转义符号
\ //转义正则中使用的符号
分组/捕获/反向引用
(正则1)\1(正则2)\2 //(正则1)是捕获 //\1是引用
(\d)\1(\d)\2 //前两位相同,后两位相同
(?:\d)\1(\d)\2 //禁止引用捕获1
匹配中文(utf-8)
中文的Unicode编码从4E00开始,到9FA5结束
JS语法:[\u4E00-\u9FA5]; //u表示Unicode
PHP匹配中文
preg_match_all(正则表达式, 字符串, 匹配结果);
preg_match_all('/[\x{4e00}-\x{9fa5}]+/u', $str, $out);
环视(断言/零宽断言/正向预测/负向预测)
Every(?=n) //匹配任何其后紧接指定字符串n的字符串
Every(?!n) //匹配任何其后没有紧跟指定字符串n的字符串
Every(?!n)[A-Z] //匹配A-Z中排除了n的字符串
正则对象的成员
exec(); 方法//执行一次正则匹配,标记下移。返回数组类型结果,否则返回null
lasrlndex; 属性//标记下一次开始匹配的字符位置
test();方法 //检测目标字符串与正则是否匹配,返回true和false
字符串对象的成员
search() //搜索符合正则的结果,返回结果位置,有则停止匹配,没有返回-1
match() //匹配正则的子串,有则返回数组,无则返回null
子表达式是:(\b)存储的结果
split() //将字符串分割成数组
replace() //默认只替换一次,加g全部替换。
//\1 == $1
//$`捕获左边所有字符
//$'捕获右边所有字符
//复杂替换使用函数
PHP中的正则表达式
php中正则的写法:‘/正则/’,必须单引号
preg_match()函数 //返回匹配的次数,匹配一次,返回值是零或一和值。
preg_match_all()函数 //执行正则中的全局匹配,返回值是二维数组
preg_replace()函数 //查找替换所有成立的正则
贪婪模式
贪婪模式:正则默认贪婪模式,匹配到符合的结果后,不会返回值,而是继续向后匹配,直到不满足条件为止,将所有结果组合到一起,返回结果
非贪婪模式:/\w+?/g //?表示零个或一个
PHP非贪婪模式:/\w+/U
//U表示禁止贪婪
//u表示Unicode编码
总结-正则表达式(regular expression)
最新推荐文章于 2022-07-06 20:42:33 发布