学习小笔记---正则表达式
定义:有一定格式的字符串 作用:1.用来判断一个字符串是否符合一定的要求 2.可以去一个字符串中,把某些符合规则的字符串拿出来 格式: 由 字符簇 限定符 定位符组成 字符簇:一组字符 由字符组成的集合 [0-9]数字 [^0-9]非数字 [a-z]小写英文 [A-Z]大写英文 [a-Z]大小写英文 [a-zA-Z] [a-zA-Z0-9]大小写英文数字 d数字 w数字英文字母及下划线 D 非数字 W 非数字英文字母及下划线 . 代表所有(任意)字符,除了换行 说明:在字符簇中出现特殊字符使用 -转义 限定符:限定字符簇中字符出现的次数 {m,n}出现m次到n次 n必须大于m {3}3位 3次 {0,n}n次以下 ? 0或者一次{0,1} + 一次以上{1,} * 0次以上{0,} 定位符: ^字符串的开始 $字符串的结束 B单词的开始 D非单词的开始与结束 | 或运算的优先级低 先左再右 ()子表达式 可以加限定符 子表达式的优先级最高匹配字符串中的位置 匹配模式:i 不区分大小写 s .中包含换行 写正则表达式: "/正则表达式/" "#正则表达式#" "!正则表达式!" $str="fdafd565645fd56fd456afd465a"; "/[0-9]{1,}/" 匹配过程:从字符串左边依次跟字符簇比对,如果符合计数器加1,当计数器已经到最大值。或者遇到和字符簇不匹配的字符,停止。然后判断计数器中的值是否和限定符要求一致,一致则匹配下来,否则继续。 运行表达式: 0|1 preg_match_all(正则表达式,字符串,数组(把匹配到的内容返回数组)) 匹配所有 0|1 preg_match(正则表达式,'Microsoft YaHei';"> 效率高 匹配到一次就停止 preg_split(正则表达式,'Microsoft YaHei';"> 用正则表达式拆分一个字符串 preg_replace(正则表达式,替换成什么,被替换的字符串) 用正则表达式去把一个字符串中的某些子字符串替换掉 反向引用:暂时没讲 比较复杂 用处也比较多用正则表达式替换一个字符串 说明:限定符跟字符簇可以 多次、重复出现 必须成对出现
和的使用: 匹配6位3-9的数字。 /[3-9]{6}/ 匹配邮政编码 /[0-9]{6}/ /d{6}/ 匹配一个a /a/ 匹配手机号 1开头 第二位:345678 第三位及以后:0-9 "/[1]{1}[3-8]{1}[0-9]{9}/" 手机好正则匹配表达式 preg_match_all("/[1]{1}[345678]{1}[0-9]{9}/","183888888888",$arr); 子表达式:把表达式 中的一部分用括号括起来,括起来的部分较子表达式,子表达式后面加限定符 说明 :子表达式后可以跟使用限制符 或的使用: 匹配一个路径字符串中(是否包含.gif .jpg .png) "/x|y|z/" 每个或之间当成一个整体 ^ :开始位置 "/^xyz/" 以xyz开始的正则表达式 $ :结束位置 "/xyz$/" 以xyz结束的正则表达式 "/^xyz$/" 以xyz开始并且以xyz结束的正则表达式 只能是xyz 邮箱的正则表达式 "/[a-zA-Z0-9_-]{2,}@[0-9a-zA-Z-]+(.[a-zA-Z]+)+$/" "/[a-z0-9_-]{2,}@[0-9a-z-]+(.[a-z]{2,})+$/i" 不区分大小写 "/[w]+@w+(.w)+$/" 整数表达式 "/^(([+-]{1}[1-9]{1})|([1-9]{1}))d*$/" 正整数表达式 "/^(+[1-9]d*)|([1-9]d*)$/" "/^(+?[1-9]d*)$/" 负整数的表达式 "/^(-?[1-9]d*)$/" 浮点数表达式 /^[+-]?(0|[1-9]d*).d+$/ "/^[+|-]?(0|[1-9]d*).d+$/" 正浮点数表达式 "/^(+0.d+)|(+[1-9].d*)|(0.d+)|([1-9]d*.d+)$/" "/^(+?0.d+)|(+?[1-9]d*.d+)$/" 负浮点数表达式 "/^-?(0|[1-9]d*).d+$/" 获取所有P标签中的所有内容 "/(<p.*?>)(.*?)</p>/s" 去除.*的贪婪性: .*? 通过数字拆分字符串 $str="fdadfsa12fdafda12fdas1"; preg_split("/d+/",$str,$arr); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |