红穆笔记
首页 语言笔记 PHP正则替换preg
语言笔记 PHP PHP采集

PHP正则替换preg

PHP正则替换preg
<?php
$str="as2223adfsf0s4df0sdfsdf";
echo preg_replace("/0/","",$str);//去掉0字符,此时相当于 replace的功能, preg_replace("/0/","A",$str); 这样就是将0变成A的意思了
echo preg_replace("/[0-9]/","",$str);//去掉所有数字
echo preg_replace("/[a-z]/","",$str); //这样是去掉所有小写字母
echo preg_replace("/[A-Z]/","",$str); //这样是去掉所有大写字母
echo preg_replace("/[a-z,A-Z]/","",$str); //这样是去掉所有字母
$str="as2223adfsAAf0s4df0s中国人dD中南海DDfsdf";
echo preg_replace("/[a-z,A-Z,0-9]/","",$str); //去掉所有字母和数字
?>
经过以上的例子,相信大家知道,[ ] 和里面的,有什么作用了。也可以看到,匹配的字符串必须加 / /(看例子的第一个参数)

<?php
$str="acsdcs<55555555>sc<6666>sdcd";
echo preg_replace("/<.*>/","",$str);

//这个是表示去除以<开头,以>结尾的那部份,输出结果是:acsdcssdcd
注意:上面的 .* 是表示任何字符,也就是说不管<>包住的是什么都去掉其中. 表示任意字符, * 表示任意个数

现在我们来改动一下,如果不想是任何个数呢?
$str="acsdcs<55555555>sc<6666>sdcd";
echo preg_replace("/<.{4}>/","",$str); //此时输出:acsdcs<55555555>scsdcd因为{4}指定了条件:<>内为4个字符的才满足条件,所以<55555555>不符合条件,没有被替换。

注意:这时我们又学到了一个知识点{数字} 表示指定前面的个数,*就表示是任意个(0--无限个)

表示重复次数的除了 *, {指定次数} 表示,还有很多表达形式:

 

<?php
$str="acsdcs<55555555>sc<6666>sd<>cd";
echo preg_replace("/<[0-9]*>/","",$str);
//输出acsdcscd
echo "<hr>";
echo preg_replace("/<[0-9]+>/","",$str);
//输入acsdcsscsd<>cd
?>

上面的例子只要是为了 表达 * 与+的区别 ,* 表示重复0数或n 次,而+ 表示1次以上,即一例中<[0-9]+ >表示<>里面至少要有一个数字才符合条件。

相信这时大家知道,为什么上例中用* 和用+输出的结果不同了吧

再来:

<?php
$str="acsdcs<55555555>sc<6666>sd<>cd";
echo preg_replace("/<[0-9]?>/","",$str);
//输出acsdcs<55555555>sc<6666>sdcd
?>

看[0-9]? 这里的?表示要是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); 

补充:

.$pattern是数组,$replace也是数组,则中对应的 元素进行替换

php

preg_replace有五个参数,有三个是必须参数

Preg_replace(mixed $pattern, mixed $replacement, mixed $subject [,int $limit = -1 [,int $count ]]);

$pattern 可以是字符串,字符串数组,或者preg

$replace 是用于替换的字符串或字符串数组

$subject 目标字符串或者目标字符串数组

$limit 每个模式在每个$subject上最大的替换次数,默认是-1(无限次)

$count 返回在目标字符串所替换的次数

在repalce与pattern中有几点要注意的

微信赞赏

微信

支付宝赞赏

支付宝

✍️ 作者: 红穆

网站管理员 · 感谢阅读,更多精彩内容敬请关注

作者主页 查看主页 →

相关文章

PHP强制转换类型

PHP强制转换类型 语言笔记 PHP PHP采集 PHP与mysql

获取数据类型1.如果想查看某个表达式的值和类型,用var_dump()。 2.如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype()。3.要查看某个类型,不要用 gettype(),而用is_type() 函数。字符串转换为数值当一个字符串被当作数字来求值时,根据以下规则来决定结果…
👁 232
php 抓取网站源码与json解析

php 抓取网站源码与json解析 语言笔记 PHP PHP采集

最近想要采集一点资源网站的名字,于是采集时发现了一个好玩的,对面网站使用的是ajax技术加载的,所以我找到了api,因此就直接写代码来入库就是了,代码这里备份一下,以后会用到的。&lt;?php $date = file_get_contents('网站地址'); $date = json_deco…
👁 136
php 特殊字符转义与还原

php 特殊字符转义与还原 语言笔记 PHP PHP采集 PHP与mysql

转义字符是一种特殊的字符常量。转义字符以反斜线"&quot;开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。转义字符的用处1:将普通字符转为特殊用途,如后退键,回车键等。2:用来将特殊意义的字符转换回它原来的意义。3:在数据写入数据库前,都会使用转义字符(函…
👁 179
PHP preg

PHP preg 语言笔记 PHP PHP采集

&lt;?php $userinfo = &quot;Name: &lt;b&gt;PHP&lt;/b&gt; &lt;br&gt; Title: &lt;b&gt;Programming Language&lt;/b&gt;&quot;; preg_match_all (&quot;/&lt;b&…
👁 169
PHP mysqli

PHP mysqli 语言笔记 PHP PHP采集 PHP与mysql

执行针对数据库的查询:删除数据库&lt;?php // 假定数据库用户名:root,密码:123456,数据库:RUNOOB $con=mysqli_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;123456&quot;,&quot;RUN…
👁 232

推荐阅读

资源网站typecho001模板

资源网站typecho001模板 程序笔记 Typecho

typecho001模板板本请勿修改本模板文件夹名称 文件夹名称为:typecho001 1.4修复文章页面js输出问题1.3修复未安装插件时的报错提示优化列表页代码输出1.2修复评论功能增加自定义首页标题1.1修复评论回复不对称功能添加首页单独的标题设置功能增加网站favicon.ico图标增加一…
👁 198
typecho分页样式的修改

typecho分页样式的修改 程序笔记 Typecho

大人,时代变了!目前typecho最完美的解决方案了,因为百度只能看到固定思维的代码。实际生成的html代码,干净到让人窒息完全的自定义,包括给li元素加上class,给a元素加上class,给上一页下一页加上class,去除typecho自带用于表示更多的li标签。甚至里面的内容我也能添加一些文字…
👁 516
typecho文章页评论样式修改

typecho文章页评论样式修改 程序笔记 Typecho

需求使用 typecho 进行模板开发的时候,默认评论样式很难看。因此需要评论需要重新输出或进行样式设定。默认的评论模板文件路径是:comments.php主要使用的相关变量&lt;?php $comments-&gt;gravatar('40', ''); ?&gt; //头像,有两个参数,大小、…
👁 387
Typecho 对数据库的增删改查操作方法 API

Typecho 对数据库的增删改查操作方法 API 程序笔记 Typecho

Typecho数据库提供了非常易用的api,和原生SQL写法没有太大的差别,同时也很好地处理了SQL常见的安全问题,如sql注入。本文从实用角度出发,介绍了typecho操作数据库的常用场景以及相关api用法。表创建和删除在Typecho插件开发过程中,往往需要创建自己的表。上文提到Typecho_…
👁 552
PHP ob函数记录

PHP ob函数记录 语言笔记 PHP

下面3个函数的用法 ob_get_contents(); ob_end_clean(); ob_start(); 可以借助这几个函数实现缓冲本地文件,以及执行本地脚本代码。 使用ob_start()把输出的代码存到缓冲区,页面不会显示出来; 然后用ob_get_contents得到缓冲区的数据。 o…
👁 141
Typecho调用热门评论文章和调用最新文章的方法总结

Typecho调用热门评论文章和调用最新文章的方法总结 程序笔记 Typecho

Typecho文章调用Typecho程序在设计主题的时候,侧栏有些时候需要调用热评文章或者最新文章。我们可以在指定的位置通过脚本直接调用。在这篇文章整理这个调用文章的方法,以后在有需要的模板中可以直接调用使用。其实设计主题就那么回事,静态模板搞定后,就是直接调用。最新文章调用 &lt;?php $t…
👁 295