正则表达式

来源:互联网 发布:原生js处理ajax超时 编辑:程序博客网 时间:2024/06/07 18:18

正则表达式基础知识思维导图
* preg_match() & preg_match_all()

preg_match(pattern,subject,[array &matches])pregmatchall(pattern,subject,array &matches);
return 匹配到结果的次数

参数:$pattern 正则表达式    $subject 匹配对象    $matches 匹配到的结果
  • preg_replace() & preg_filter()
    preg_replace(pattern,replacement,subject)pregfilter(pattern,replacement,subject)
区别:preg_replace()会保留所有匹配对象的数据    preg_filter()只保留发生替换的数据
  • preg_grep() 阉割版的preg_filter()
匹配包含$pattern的字符串  preg_grep($pattern,array $input) 阉割版的preg_filter()
  • preg_split() 分割字符串为数组 类似explode()
preg_split($pattern,$subject)
  • preg_quote($str) 正则运算符转义
$tr = 'jiadef[joiade]{jijfaeo}';echo preg_quote($tr);结果:jiadef\[joiade\]\{jijfaeo\}

函数总结

都以preg_开头除preg_quote函数外,第一个参数都是正则表达式preg_match--表单验证等preg_replace--非法词语过滤等

正则表达式基本语法

  • 界定符
  • 原子
  • 量词
  • 边界控制
  • 模式单元

界定符

表示一个正则表达式的开始和结束/[0-9]/

regexpal工具

原子
* 可见原子

unicode 编码表中用键盘输出后肉眼可见的字符
  • 不可见原子
unicode 编码表中用键盘输出后肉眼不可见的字符换行符 \n回车 \r制表符 \t空格其他不可见符号注意:1.文字匹配建议转化成unicode编码再匹配2.正则表达式运算符需要转义才能匹配  

元字符
* 原子的筛选方式

| 匹配两个或多个分支选择[] 匹配方括号中的任意一个原子[^] 匹配除方括号中的原子之外的任意字符

元字符之原子的集合

. 匹配除换行符之外的任意字符\d 匹配任意一个十进制数字,即 [0-9]\D 匹配任意一个非十进制数字,[^0-9]\s 匹配一个不可见原子 [\f\n\r\t\v]\S 匹配一个可见原子 [^\f\n\r\t\v]\w 匹配任意一个数字、字母或下划线 [0-9a-zA-Z_]\w 匹配任意一个非数字、字母或下划线 [^0-9a-zA-Z_]

量词

{n} 表示其前面的原子恰好出现n次{n,} 表示其前面的原子最少出现n次{n,m} 表示前前面的原子最少出现n次,最多出现m次* 匹配0次、1次或者多次其之前的原子,即{0,} + 匹配1次或者多次其之前的原子 {1,}? 匹配0次或者1次其之前的原子,即{0,1}

边界控制和模式单元

^匹配字符串开始的位置$ 匹配字符串结尾的位置() -模式单元 匹配其中的整体为一个原子

修正模式

贪婪匹配和懒惰匹配

贪婪匹配 -- 匹配结果存在歧义时取其长懒惰匹配 -- 匹配结果存在歧义时取其短 /[0-9]/U

常见修正模式

U - 懒惰匹配 u 贪婪匹配(默认)i - 忽略英文字母大小写x - 忽略正则表达式中的空白和换行s - 让元字符 `.`匹配包括换行符在内所有字符e - 

常用正则表达式

非空  .+  可用于表单验证 不能为空浮点数匹配  \d+\.\d{2}$  常用于货币的匹配手机号匹配  1(3|4|5|7|8)\d{9}email 地址匹配  \w+(\.\w+)\$\w+(\.\w+)+$url地址匹配:^(https?://)?(\w+\.)+[a-zA-Z]+$
原创粉丝点击