php 正则替换一些例子小结

PHP正则表达式替换的相关概念:

preg_replace:执行正则表达式的搜索和替换

mixed preg_replace (   mixed pattern,   mixed replacement,   mixed subject [, int limit]) preg_replace:允许你替换字符串中匹配到你定义的正则表达式。

一个简单的注释移除功能:

 代码如下 复制代码

preg_replace('[(/*)+.+(*/)]', '', $val);

这段代码可以移除在 PHP 和 CSS 中使用 /* 注释 */ 格式的多多行注释。其中的三个参数分别为正则表达式,要替换成的字符串和要替换的目标字符串(这里要做移除功能,所以是个空白字符串 -> '')。如果你想匹配次级规则,可以使用 $0 代表全部匹配,$1、$2 等,以此类推代表分别的次级规则。

在 subject 中搜索 pattern 模式的匹配项并替换为 replacement。如果指定了 limit,则仅替换 limit 个匹配,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换。

replacement 可以包含 //n 形式或(自 PHP 4.0.4 起)$n 形式的逆向引用,首选使用后者。每个此种引用将被替换为与第 n 个被捕获的括号内的子模式所匹配的文本。n 可以从 0 到 99,其中 //0 或 $0 指的是被整个模式所匹配的文本。对左圆括号从左到右计数(从 1 开始)以取得子模式的数目。

对替换模式在一个逆向引用后面紧接着一个数字时(即:紧接在一个匹配的模式后面的数字),不能使用熟悉的 //1 符号来表示逆向引用。举例说 //11,将会使 preg_replace() 搞不清楚是想要一个 //1 的逆向引用后面跟着一个数字 1 还是一个 //11 的逆向引用。本例中的解决方法是使用 /${1}1。这会形成一个隔离的 $1 逆向引用,而使另一个 1 只是单纯的文字。

例子1:

 代码如下 复制代码

$jobname="行政办—RH021001前台秘书(职位编号:RH021001)";
$jobname=preg_replace("/(.*)/","",$jobname);
$jobname=preg_replace("/.*—.*01/","",$jobname);
//输出:前台秘书

例子2:

 代码如下 复制代码

$str="<a href="space.php?uid=109">fsb</a>";s<a href="space.php?uid=109&do=thread&id=174">注意调节心态 预防职场心理疲劳</a>";
 
$str=preg_replace("/space.php?uid=(d+)&do=thread&id=(d+)/","/space-0-do-thread-id-${2}.html",$str);
$str=preg_replace("/space.php?uid=(d+)/","/space-${1}.html",$str);
 
//输出:<a href="space.php?uid=109">fsb</a>";s<a href="/space-0-do-thread-id-174.html">注意调节心态 预防职场心理疲劳</a>

例子3: 正则提取或替换img标记属性

 

 代码如下 复制代码

<?php

/*PHP正则提取图片img标记中的任意属性*/
$str = '<center><img src="https://img.lookmw.cn/images/20100516000.jpg" height="120" width="120"><br />PHP正则提取或更改图片img标记中的任意属性</center>';

//1、取整个图片代码
preg_match('/<s*imgs+[^>]*?srcs*=s*('|")(.*?)\1[^>]*?/?s*>/i',$str,$match);
echo $match[0];

//2、取width
preg_match('/<img.+(width="?d*"?).+>/i',$str,$match);
echo $match[1];

//3、取height
preg_match('/<img.+(height="?d*"?).+>/i',$str,$match);
echo $match[1];

//4、取src
preg_match('/<img.+src="?(.+.(jpg|gif|bmp|bnp|png))"?.+>/i',$str,$match);
echo $match[1];

/*PHP正则替换图片img标记中的任意属性*/
//1、将src="https://img.lookmw.cn/images/20100516000.jpg"替换为src="https://img.lookmw.cn/uc/images/20100516000.jpg")
print preg_replace('/(<img.+src="?.+)(images/)(.+.(jpg|gif|bmp|bnp|png)"?.+>)/i',"${1}uc/images/${3}",$str);
echo "<hr/>";

//2、将src="https://img.lookmw.cn/images/20100516000.jpg"替换为src="https://img.lookmw.cn/uc/images/20100516000.jpg",并省去宽和高
print preg_replace('/(<img).+(src="?.+)images/(.+.(jpg|gif|bmp|bnp|png)"?).+>/i',"${1} ${2}uc/images/${3}>",$str);

?>

时间: 2024-10-30 15:35:13

php 正则替换一些例子小结的相关文章

php正则替换变量指定字符的方法_正则表达式

本文实例讲述了php正则替换变量指定字符的方法.分享给大家供大家参考.具体如下: 这里介绍三种常用方法. 方法一: <?php $str = preg_quote('(银子)'); $txt = '我的呢称(银子)'; echo preg_replace("/($str)/","<span style='color:#f00;'>$1</span>",$txt); ?> 方法二: <?php $str = quotemeta

正则替换换行符和把 br 替换成换行符_正则表达式

正则替换换行符 和把<br/>替换成换行符 例子:str = str.replace(/\r\n/g,"<br/>");//把换行符替换成<br/>,注意:\r\n为正则表达式的快捷方式不能用/r/n或\/r\/n str = str.replace(/<br\/>g,"\r\n");//注意:/为正则表达式的保留字必须在前面用\转义 另外说明一点: /n或者是/r/n   或者是/r 都可能是换行符,要看你的系统是w

php正则替换变量指定字符的方法

本文实例讲述了php正则替换变量指定字符的方法.分享给大家供大家参考.具体如下: 这里介绍三种常用方法. 方法一: <?php $str = preg_quote('(银子)'); $txt = '我的呢称(银子)'; echo preg_replace("/($str)/","<span style='color:#f00;'>$1</span>",$txt); ?> 方法二: <?php $str = quotemeta

正则替换换行符和把 br 替换成换行符

正则替换换行符 和把<br/>替换成换行符 例子:str = str.replace(/\r\n/g,"<br/>");//把换行符替换成<br/>,注意:\r\n为正则表达式的快捷方式不能用/r/n或\/r\/n str = str.replace(/<br\/>g,"\r\n");//注意:/为正则表达式的保留字必须在前面用\转义 另外说明一点: /n或者是/r/n   或者是/r 都可能是换行符,要看你的系统是w

php 正则替换url的问题

问题描述 php 正则替换url的问题 我有一个字符串里面的内容是采集的 比如 "" <p>sdlfjsd</p> <img data-src='http://www.xx.com/sfjsdlfjsdsfADD/0?wx=giflsdfjl'/><strong>lsfjlsj</strong>fjlsdfjlasdf<img data-src='http://www.xfffm/sfjsdlfjsdsf?wx=gifl

ASP用正则替换图片名称函数

用正则替换图片名称函数,例如将/img/abc.jpg里abc.jpg替换成S_abc.jpg,效果如下:想要替换为 /img/S_abc.jpg ,通过以下的函数可以实现. 以下是函数代码:function changepic(ss) Set re = New RegExp re.Pattern = "\B\/(\S+)(\.jpg|.gif|.png|.bmp)\b" re.Global = True re.IgnoreCase = True re.MultiLine = True

ASP自定义函数:对字符串正则替换

函数|正则|字符串 RegReplace(str,regexStr,RepalceStr)对str进行正则替换 如: htmlstr="123<imgsrc=http://itdowns.com/edu/asp/20070123/""asdf.gif""border=""0"">45<b>6</b>"htmlstr2=RegReplace(htmlstr,"&l

php正则替换处理HTML页面的方法

  本文实例讲述了php正则替换处理HTML页面的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

php中正则替换函数ereg

 下面的实例是利用php 正则替换函数 ereg_replace来把指定的字符替换成我想需要的字符实例,代码如下: 代码如下: $num = 'www.jb51.net'; $string = "this string has four words. <br>"; $string = ereg_replace ('four', $num, $string); echo $string;   $num = '49'; $string = "this string h