preg_replace正则表达式的使用

<?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);

时间: 2024-12-25 08:42:22

preg_replace正则表达式的使用的相关文章

PHP preg_replace() 正则替换所有符合条件的字符串

PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素 需要我们用程序处理的数据并不总是预先以数据库思维设计的,或者说是无法用数据库的结构去存储的. 比如模版引擎解析模版.垃圾敏感信息过滤等等. 一般这种情况,我们用正则按我们的规则去匹配preg_match.替换preg_replace. 但一般的应用中,无非是些数据库CRUD,正则摆弄的机会很少. 根据前面说的,两种场景:统计分析,用匹配:

学习小笔记---正则表达式

定义:有一定格式的字符串 作用:1.用来判断一个字符串是否符合一定的要求 2.可以去一个字符串中,把某些符合规则的字符串拿出来 格式: 由 字符簇 限定符 定位符组成 字符簇:一组字符 由字符组成的集合 [0-9]数字 [^0-9]非数字 [a-z]小写英文 [A-Z]大写英文 [a-Z]大小写英文 [a-zA-Z] [a-zA-Z0-9]大小写英文数字 \d数字 \w数字英文字母及下划线 \D 非数字 \W 非数字英文字母及下划线 . 代表所有(任意)字符,除了换行 说明:在字符簇中出现特殊字

PHP函数preg_replace() 正则替换所有符合条件的字符串

PHP preg_replace() 正则替换,与JavaScript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素. preg_replace (正则表达式, 替换成, 字符串, 最大替换次数[默认-1,无数次], 替换次数) 大部分语言的正则表达式都是差不多的,不过也有细微的差异. PHP 正则表达式 正则字符 正则解释 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个向后引用.或一个八进制转义符.例如,“\n”匹配字符“n”.“\\n”匹

第五十一天上课 正则表达式和数组

正则表达式的常用方法: #preg_replace(正则表达式,“x”,$str)           将字符串中满足正则表达式的替换成x #preg_spilt ( 正则表达式,$str )                  将字符串按满足正则表达式的地方分隔开来,返回数组 #preg_match ( 正则表达式,$str,数组 )        将字符串str中满足正则表达式的第一个提取出来存入数组 #preg_match_all(正则表达式,$str,数组)       将字符串str中满

php字符串(二)

1.str_replace  代替替换把php替换成***  支持中文 $s='hello php,my php'; echo str_replace('php', '***', $s,$y); echo $y; //输出修改了几次 2.&表示引用 str_ireplace 不区分大小写的替换 3.preg_replace  正则表达式替换 $s='1254hello p24hp,m541y ph11p'; echo preg_replace('/\d{3}/', '*', $s);   $s=

检测php网站是否已经被攻破的方法

原文地址:http://drops.wooyun.org/web/2718                     分类:web安全(这篇文章的侧重点是利用系统命令)一.查看访问日志看是否有文件上传操作(POST方法), [plain] view plain copy IPREMOVED - - [01/Mar/2013:06:16:48 -0600] "POST/uploads/monthly_10_2012/view.php HTTP/1.1" 200 36 "-&quo

PHP basename 函数 linux下中文路径的问题解决方法

关于php basename()函数的基本使用方法,大家可以查看这篇文章<php basename()解析路径并获取文件名称> 有两种方法可以解决basename()函数无法获取带中文字符的文件名 用setlocale()函数设置区域方法 preg_replace()正则表达式方法 下面具体了解每种方法如何实现basename()支持中文 第一种方法:setlocale()函数设置区域 basename()函数依赖于区域,所以我们需要使用setlocale()为其设置区域 <?php s

PHP表单处理、会话管理、文件上传、文件处理、执行函数(10.8 第十六天)

表单处理 服务器接收用户发过来的数据方式: $_GET 接收用户以GET方式发过来的数据 $_POST 接收用户以POST方式发过来的数据 $_COOKIE 接收用户COOKIE $_REQUEST 接收用户发过来的数据 htmlspecialchars() 实体化编码 文件包含:通过一些文件包含的函数将本地或者远程服务器中文件包含解析到当前服务器中,达到文件读取.代码利用.函数调用等目的 include "文件名 "==include("文件名") include

PHP正则表达式的逆向引用与子模式 php preg_replace应用

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit]) 功能 在 subject 中搜索 pattern 模式的匹配项并替换为 replacement.如果指定了 limit,则仅替换 limit 个匹配,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换.replacement可以包含\\n形式或$n形式的逆向引用,n可以为0到99,\\n表示匹配pattern第n个子