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