标签:htm 换行 贪婪 llb 正则表达式 back img cal sdas
分割字符串、查找字符串、匹配字符串、替换字符串:简称->分割、查找、匹配、替换
正斜线(/),hash符号(#),取反符号(~)
\d
: 十进制的0-9\D
: 对\d取反:除了0-9\w
: 数字、字母、下画线\W
: 除了数字、字母、下画线\s
: 空格、换行符、换页符、回车符、字表符\S
: 除了空格、换行符、换页符、回车符、字表符.
: 除了换行符之外的任意字符*
: 匹配前面内容出现0次、1次或多次?
: 匹配前面内容出现0次或1次^
: 开头+
: 匹配前面内容出现1次或多次{n}
: 出现n次{n,}
:出现大于等于n次{n,m}
: 出现大于等于n次 小于等于m次[]
: 集合,匹配中括号里面的[abc]则是匹配a 或 b 或 c()
: 后向引用或当作整体[^]
: 取反[^abc]除了a 、除了b、 除了c|
: 或者[-]
: 表示范围;比如:[0-9],匹配的内容就是0,1,2,3,4,5,6,7,8,9i
: 不区分大小写m
: 多文本模式s
: 单行模式U
: 取消贪婪模式x
: 忽略模式中的空白符A
: 必须以该模式开头D
: 模式中的美元元字符仅匹配目标字符串的结尾.如果这个修饰符被设置, 模式中的元字符美元符号仅仅匹配目标字符串的末尾. 如果这个修饰符 没有设置, 当字符串以一个换行符结尾时, 美元符号还会匹配该换行符(但不会匹配之前的任何换行符). 如果设置了修饰符m, 这个修饰符被忽略u
: 进行utf-8匹配<?php $str = ‘abaasdassdd‘; $pa = ‘/([a-zA-Z])\1/‘; echo preg_replace($pa, ‘7‘, $str); /* 小括号:(pattern):匹配对应的pattern,然后将匹配到的内容捕获到自动命名的组里 自动命名的组 :使用小括号指定一个子表达式后,匹配这个子表达式的文本可以在表达式或其它程序中作进一步的处理。 默认情况下,每个分组会自动拥有一个组号,规则是:以分组的左括号为标志,从左向右,第一个分组的组号为1, 第二个为2,以此类推。 后向引用:后向引用用于重复搜索前面某个分组匹配的文本。例如,\1代表分组1匹配的文本。 */ /* 在上面的例子中,小括号([a-zA-Z])匹配到的是所有的字母,\1的意思就是后向引用,这里只有一个小括号,也就是只有一组, 所以\1就是把小括号里的内容再次匹配一遍,注意,有些人容易钻牛角尖,比如这里第一次匹配的时候,匹配到的是字母a, 然后会把a再次放到小括号里面匹配一次,后面也一样,容易理解错的就是有些人容易会觉得第一次匹配到的是abaasdassdd, 然后第二次匹配到的是同样也就是abaasdassdd,不是这么匹配的,这样理解是绝对错误的
*/
?>
$str = ‘<b>abc</b><b>bcd</b>‘;//匹配每一不b标签 $pattern = ‘/<b>(.*?)<\/b>/‘;//.*存在贪婪模式,会一直匹配到最后,加上问号后 取消贪婪模式,匹配一个之后再进行下一个匹配 preg_replace($pattern,‘\\1‘,$str); //使用以下方法也可以取消贪婪模式 $pattern = ‘/<b>(.*)<\/b>/U‘; //U和?不可以一起用
函数名 | 功能 |
---|---|
preg_filter | 执行一个正则表达式搜索和替换 |
preg_grep | 返回匹配模式的数组条目 |
preg_match | 执行一个正则表达式匹配 |
preg_match_all | 执行一个全局正则表达式匹配 |
preg_replace_callback_array | 传入数组,执行一个正则表达式搜索和替换使用回调 |
preg_replace_callback | 执行一个正则表达式搜索并且使用一个回调进行替换 |
preg_replace | 执行一个正则表达式的搜索和替换 |
preg_split | 通过一个正则表达式分隔字符串 |
写出一个正则表达式,取出页面中所有img标签中的src值
标签:htm 换行 贪婪 llb 正则表达式 back img cal sdas
原文地址:https://www.cnblogs.com/starshine-zhp/p/12829556.html