正则表达式
一、正则表达式语法规则 描述了一类字符串的特征,然后通过这个特征可以配合一些特定的函数,来完成对字符串更加复杂的一系列操作! 普通字符和特殊字符组成的一个字符串 二、定界符 我们一般习惯使用正斜线"/"作为定界的字符,前后一致 ,除了字符数字反斜线外都可以作为定界符比如
#test# !test! 都是可以的 三、普通字符 比如a-z 0-9 A-Z 双引号 单引号 他们没有特殊的含义 需要转义'/te\'st/' 单引号转义
四、元字符
元字符指的是在正则表达式有特殊函数的字符。 \d 匹配任意一个十进制数字,等价于[0-9] \D 匹配任意一个除十进制数字以外字符,等价于[^0-9] \s 匹配任意一个空白字符,比如换页符、换行符、回车符、制表符、垂直制表符 \S 匹配除空白字符以外的任何一个字符 \w 匹配任意一个数字或字母或下划线 \W 匹配除数字、字母、下划线以外的任意一个字符 . 匹配除换行符以外的任意一个字符 * 匹配0次、或1次、或多次其前面的字符 + 匹配1次或多次其前面的字符 ? 匹配0次或1次其前面的字符 {n} 表示其前面字符恰好出现n次 {n,} 表示其前面字符出现不少于n次 {n,m} 表示其前面的字符至少出现n次,最多出现m次 ^或\A 匹配字符串开始位置 $或者\Z 匹配字符串的结束位置 | 匹配两个或多个模式 [] 匹配方括号中的任意一个字符 [^] 匹配除方括号中字符以外的任意一个字符
()将括号中作为一个整体一遍将其中的内容获取 也就是分组的意思
与正则表达式配合的函数
preg_filter — 执行一个正则表达式搜索和替换 2. preg_grep — 返回匹配模式的数组条目 3. preg_last_error — 返回最后一个PCRE正则执行产生的错误代码 4. preg_match_all — 执行一个全局正则表达式匹配 5. preg_match — 执行一个正则表达式匹配-出现一次就不再匹配了 6. preg_quote — 转义正则表达式字符 7. preg_replace_callback_array — Perform a regular expression search and replace using callbacks 8. preg_replace_callback — 执行一个正则表达式搜索并且使用一个回调进行替换 9. preg_replace — 执行一个正则表达式的搜索和替换 10. preg_split — 通过一个正则表达式分隔字符串
<?PHP // 定义要匹配的正则表达式 $a='/te/'; // 定义字符串 $str="testtetstett"; var_dump(preg_match_all($a,$str)); //返回int 3 匹配上3次 ?>
<?PHP // // 定义要匹配的正则表达式 // $a='/te/'; // // 定义字符串 // $str="testtetstett"; // var_dump(preg_match_all($a,$str)); //返回int 3 匹配上3次 // 元字符 * // 表示e可以出现0次或1次 或n次 // $pattern='/te*/'; // echo preg_match_all($pattern,'teeeeeeeeeee'); //返回匹配上1次 $pattern='/te{2}st/'; echo preg_match_all($pattern,'teest'); //返回匹配上1次 ?>
<?PHP /* ()将括号的内容获取到 后面添加\\数字 来代表圆括号部分匹配的内容 */ $pattern='/t(e)s(t)\\1/'; // \\1代表第一个圆括号部分所在的内容 echo preg_match_all($pattern,'teste',$arr); // \\1就相当于第一个圆括号中的e print_r($arr); ?>
模式修正符
模式修正符是正则表达式的定界符之后使用的,可以调整正则表达式的解释,扩展正则表达式的匹配、
替换等操作时的某些功能,增强正则表达式的处理能力
常见模式修正符
i 在和模式进行匹配时不区分大小写
m 多行匹配,如果目标字符串 中没有"\n"字符, 或者模式中没有出现^或$, 设置这个修饰符不产生任何影响
s 如果设定了此修正符,那么.将匹配所有的字符包括换行符
U 禁止贪婪匹配