1、
$str="acsdcs<55555555>sc<6666>sdcd";
去除以<开头,以>结尾的那部份,输出结果是:acsdcssdcd
echo preg_replace("/<.*>/","",$str);
上面的 .* 是表示任何字符,也就是说不管<>包住的是什么都去掉其中. 表示任意字符, * 表示任意个数
2、
$str="acsdcs<55555555>sc<6666>sdcd";
echo preg_replace("/<.{4}>/","",$str);
此时输出:acsdcs<55555555>scsdcd因为{4}指定了条件:<>内为4个字符的才满足条件,所以<55555555>不符合条件,没有被替换。
注:{数字} 表示指定前面的个数,*就表示是任意个(0--无限个)
3、
表示重复次数的除了 *, {指定次数} 表示,还有很多表达形式
$str="acsdcs<55555555>sc<6666>sd<>cd";
echo preg_replace("/<[0-9]*>/","",$str);//注意没有“.”
//输出acsdcscd
echo "<hr>";
echo preg_replace("/<[0-9]+>/","",$str);//注意没有“.”
echo preg_replace("/<.[0-9]*>/","",$str);//注意有“.”
//输入acsdcsscsd<>cd
上面的例子只要是为了 表达 * 与+的区别 ,* 表示重复0数或n 次,而+ 表示1次以上,即一例中<[0-9]+ >表示<>里面至少要有一个数字才符合条件。
4、
$str="acsdcs<55555555>sc<6666>sd<>cd";
echo preg_replace("/<[0-9]?>/","",$str);
//输出acsdcs<55555555>sc<6666>sdcd
这里的?表示要是0次或1 次,超过1次不符合条件。
更复杂的例子来啦:
$s=preg_replace("/(.*?[月票|求|更].*?)/i","",$s);
preg_match_all('/href="([0-9]+).shtm">(.+?)</a>/i',$s,$arr_dstorycate);
print_r($arr_dstorycate);
preg_match_all("/<img.*?src=[\'| \"](.*?(?:[.gif|.jpg]))[\'|\"].*?[/]?>/i",$content,$arr_dstorycate);
print_r($arr_dstorycate);
更多preg_replace例子:
$string = 'April 15, 2003' ;
$pattern = '/(\w+) (\d+), (\d+)/i' ;
$replacement = '${1}1,$3' ;//${1}1,因为后面跟了实体1,所以前面必须大括号括起来
echo preg_replace ( $pattern , $replacement , $string );//April1,2003
$dirvalue = '21-78区TapTeam阳光';
preg_match($pattern,$dirvalue, $arr);
//得到的匹配值:
$arr = Array
(
[0] => 21-78区TapTeam阳光
[1] => 21
[2] => 78
[3] => TapTeam阳光
)
$str="acsdcs<55555555>sc<6666>sdcd";
去除以<开头,以>结尾的那部份,输出结果是:acsdcssdcd
echo preg_replace("/<.*>/","",$str);
上面的 .* 是表示任何字符,也就是说不管<>包住的是什么都去掉其中. 表示任意字符, * 表示任意个数
2、
$str="acsdcs<55555555>sc<6666>sdcd";
echo preg_replace("/<.{4}>/","",$str);
此时输出:acsdcs<55555555>scsdcd因为{4}指定了条件:<>内为4个字符的才满足条件,所以<55555555>不符合条件,没有被替换。
注:{数字} 表示指定前面的个数,*就表示是任意个(0--无限个)
3、
表示重复次数的除了 *, {指定次数} 表示,还有很多表达形式
$str="acsdcs<55555555>sc<6666>sd<>cd";
echo preg_replace("/<[0-9]*>/","",$str);//注意没有“.”
//输出acsdcscd
echo "<hr>";
echo preg_replace("/<[0-9]+>/","",$str);//注意没有“.”
echo preg_replace("/<.[0-9]*>/","",$str);//注意有“.”
//输入acsdcsscsd<>cd
上面的例子只要是为了 表达 * 与+的区别 ,* 表示重复0数或n 次,而+ 表示1次以上,即一例中<[0-9]+ >表示<>里面至少要有一个数字才符合条件。
4、
$str="acsdcs<55555555>sc<6666>sd<>cd";
echo preg_replace("/<[0-9]?>/","",$str);
//输出acsdcs<55555555>sc<6666>sdcd
这里的?表示要是0次或1 次,超过1次不符合条件。
更复杂的例子来啦:
$s=preg_replace("/(.*?[月票|求|更].*?)/i","",$s);
preg_match_all('/href="([0-9]+).shtm">(.+?)</a>/i',$s,$arr_dstorycate);
print_r($arr_dstorycate);
preg_match_all("/<img.*?src=[\'| \"](.*?(?:[.gif|.jpg]))[\'|\"].*?[/]?>/i",$content,$arr_dstorycate);
print_r($arr_dstorycate);
更多preg_replace例子:
$string = 'April 15, 2003' ;
$pattern = '/(\w+) (\d+), (\d+)/i' ;
$replacement = '${1}1,$3' ;//${1}1,因为后面跟了实体1,所以前面必须大括号括起来
echo preg_replace ( $pattern , $replacement , $string );//April1,2003
-------*******注意,这是替换,如果是匹配,则用
preg_match():(https://blog.csdn.net/liujihaozhy/article/details/50433262)
$pattern = '/(\d+)\-(\d+)区(.*)/';$dirvalue = '21-78区TapTeam阳光';
preg_match($pattern,$dirvalue, $arr);
//得到的匹配值:
$arr = Array
(
[0] => 21-78区TapTeam阳光
[1] => 21
[2] => 78
[3] => TapTeam阳光
)