很多站长朋友们都不太清楚php正则替换函数,今天小编就来给大家整理php正则替换函数,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php 正则函数 preg_replace 2、 php正则表达式替换问题php函数preg_replace的使用问题 3、 php如何进行正则替换 4、 php正则替换 5、 PHP正则替换 6、 php 如何正则替换 php 正则函数 preg_replace因为数组里面你先写了#ab#,后写的#abc#,实际工作时系统先使用第一组参数替换,然后使用第二组参数替换。
如果你希望得到22结果,应该交换数组里面两个的顺序。
php正则表达式替换问题php函数preg_replace的使用问题都帮你测试好了,正则多写一个<ul>就能搞定了:
<?php
$str = '你的一大堆字符串'; // 你如果直接放字符串,需要用单引号
$reg = '/<div class="pic-list">\s+<ul>.*?<\/ul>\s+<\/div>/is';
$new_str = preg_replace( $reg, '', $str);
echo $new_str;
?>
php如何进行正则替换很简单,代码如下(其实不用正则也可以,strstr()与str_replace()函数也能替换):
// 需要替换的字符串
$string = 'D:\wwwroot\cms\index.php'; // 假设一个路径
// 正则样式
$pattern = '/\\/';
// 检测是否需要替换
if (preg_match($pattern, $string)) {
// 开始替换\为/
$string = preg_replace($pattern, '/', $string);
}
// 输出替换后的字符串
echo $string; // D:/wwwroot/cms/index.php
php正则替换如果你是想要把空格前后的内容换换位置的话,是完全可以的。
首先以空格为分隔,把字符串变成数组.$arr_titles = explode(' ',$titles);这样就得到一个数组,$arr_titles的内容应该是('手提包','超级甜美味儿简约蝴蝶结箱型手提包'),你可以用print_r($titles)打出来看一下。
然后把数组$arr_titles反过来排序。
$i = count($arr_titles);//获取数组长度
$new_arr_titles = array();//定义新数组
foreach($arr_titles as $k=>$v){
$new_arr_titles[$i-$k] = $v;
}
然后拼接回数组。$new_titles = implode(' ',$arr_titles);
这样不管$title中有多少个按照空格分隔的字符串,都可以反过来排序了。
不知道是不是你想要的效果,如果不是可以追问,我继续回答。如果可以帮到你,希望你能够采纳。谢谢。
PHP正则替换$source=你的原字符串。
$source=preg_replace('/(<img(?:(?!onclick)[\s\S])*)onclick\S++((?:(?!src)[\s\S])*src=[\'"]([^\'"]++)[\'"][^>]+>)/','<a href="$3">$1$2</a>',$source);
这个正则替换的要求是增加一部分,删除一部分。
像我上面给你这个答案虽然可以在一行里面替换完成,但是正则式本身会比较复杂,而且默认你的onclick必然在src之前,如果onclick在src之后则无法匹配。
也可以让这个式子再复杂一些,让它可以自动识别onclick和src是否存在,甚至自动适应onclick和src的顺序。
但过于复杂的正则式就不容易维护了。
因此比较好的做法是分两部完成它。
第一步增加a tag
第二步删除onclick
或者反过来也可以。
你可以自己尝试一下分步处理的方案,很简单的。
----------------------------------------------
给你写了一个处理函数,你搭配下面的preg_replace_callback用就是了。
实际上是把分步处理都包含在函数里面了,这样你也比较容易看懂,自己维护起来也方便。
function wrapper($block){
//转存局部变量
$img=$block[0];
//$match[0]为匹配文,$match[1]为其类别,$match[2]为其内容,/S是study模式,如果你需要处理的标签很多,或者你需要处理的文本很大,那么这个S的效率提高会比较明显。
//这里主要是处理alt和src
preg_match_all('/(alt|src)=([\'"][^"\']++[\'"])/S',$img,$match);
//显式声明a tag的链接容器和title容器,不声明也可。
$href=null;
$title=null;
//对刚才获取的内容进行处理,从alt中取出title,从src或onclick中获取href
foreach($match[1] as $key=>$name)
{
switch($name){
case 'alt':
$title='title='.$match[2][$key];
break;
case 'src':
$href='href='.$match[2][$key];
break;
default:
break;
}
}
//这里处理onclick
if(preg_match('/onclick=([^\s>]++)/',$img,$match))
{
//如果之前没有显示声明,这里就应该使用!isset($href)进行判断
if(!$href){$href='href='.$match[1];}
$img=str_replace($match[0],'',$img);
}
//生成a tag并返回变换后的数据
return "<a $title $href>".$img."</a>";
}
$source=preg_replace_callback('/<img[^>]++>/','wrapper',$source);
php 如何正则替换很简单,代码如下(其实不用正则也可以,strstr()与str_replace()函数也能替换):
// 需要替换的字符串
$string = 'D:\wwwroot\cms\index.php'; // 假设一个路径
// 正则样式
$pattern = '/\\/';
// 检测是否需要替换
if (preg_match($pattern, $string)) {
// 开始替换\为/
$string = preg_replace($pattern, '/', $string);
}
// 输出替换后的字符串
echo $string; // D:/wwwroot/cms/index.php
关于php正则替换函数的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php正则替换函数 php 正则的详细内容...