- <?php
- /*
- *1、正则表达式iushi描述字符串排列模式的一种自定义语法规则
- *2、如果可以使用字符串处理函数完成的任务,就不要使用正则
- *3、一些复杂的操作,只能使用正则完成
- *4、正则表达式也成为一种模式表达式
- *5、正则表达式是通过特定规则的模式,与输入的字符信息比较,在进行分割、匹配查找、替换工作
- */
- /*
- 语法:
- 1、定界符
- //除了字母、数字、正斜线\外都可以作为定界符
- 2、原子
- *原子是正则表达式的最基本组成单元,至少包含一个,只要一个正则表达式可以单独使用的字符,就是原子
- *所有打印和非打印字符
- *代表范围的原子
- \d:表达任何数字
- \D:表示任何除数字外的字符
- \s:表示任意一个空白字符
- \S:表示任意非空白字符
- \w:匹配a-zA-Z0-9_
- \W:和\w匹配相反
- *自己定义
- []:匹配方括号中任何一个原子
- [1-9a-z]:范围
- [^1-9]:取反,^必须在方括号内的第一个字符
- *.
- 3、元字符
- 元字符是修饰原子的特殊字符,不可独立使用
- * 表示其前面的原子可以出现任意次
- + 表示其前面原子至少出现1次
- ? 表示0次或者1次
- {} 自定义出现的次数
- {m} m为整数
- {m,n} 大等于m次和小等于n次
- {m,}
- . 默认情况为换行符之外的其他字符
- ^ 直接作为第一个字符使用,为开头
- $ 最后使用为结束符
- | 或的关系,匹配左右,优先级别最低,最后匹配
- \b 表示一个边界
- \B 表示非边界
- () 重点;
- 一、作为大原子使用
- 二、改变优先级
- 三、作为子模式使用
- 四、可以取消子模式,就作为其他用处(?: )
- 五、反向引用 可以将子模式直接取出来,作为正则表达式模式的一部分 preg_replace中
- 优先级:
- \
- () (?:) []
- * + ? {}
- ^ & \b
- |
- 4、模式修正符号
- //模式修正符
- 就是几个字母
- 可以同时使用
- 是对正则表达式调优用的
- i:不区分大小写
- m:将字符串视为一行 ^ $视为多行均可
- s:将字符串视为单行,主要是针对.
- x:忽略空白
- e:
- U:匹配第一个
- /原子和元字符/模式修正符
- 处理函数:
- preg_match()
- */
- $pattern = "/((a)b{2,}c)/";
- $str = "aaaabbbbccc";
- if(preg_match($pattern,$str,$arr)){
- echo "正则表达式$pattern 匹配成功!";
- }else{
- echo "<font color='#FF000000'>正则表达式$pattern 匹配失败!</font>";
- }
- print_r($arr);
- ?>