php 使用通配符(*)达到与类似正则替换字符串的目的
来源:互联网 发布:网络维护费用 编辑:程序博客网 时间:2024/05/06 00:13
我对于正则,不是很熟悉,正则对字符串的处理非常的广泛,什么都可以做,有时只需要它的一点功能就可以做很多的字符串处理了,路(.*?)就是通配符的基本正则表达式,对正则我不熟悉,经常需要用类似通配符的处理字符串,所以我 写了一个可以使用通配符的简单的处理字符串替换的函数tihuan_str()
正则其他的功能实现就比较难了,路可变的数量(把字符分类,路数字,这些地方不好把握)
php代码:
<?php//写一个通配符替换的字符串的函数//使用说明:tihuan_str($fustr,$str1,$str2)函数使用方法:$fustr---要处理的字符串,$str1---可以使用(*)通配符的要替换的字符串 , $str2-----替换为的新字符串,最后返回处理结果$fustr;$fustr="sdfs<table 大股东大股东dgdg>dfs大股东</table>df<table dhfht>asdasd单个</table>";;$str1='<table(*)>(*)</table>';$str2='(我被替换啦)';function tihuan_str($fustr,$str1,$str2){if(empty($fustr)||empty($str1)){echo '参数12不得空字符<br>';return $fustr; }$wz1=0;$arr=explode('(*)',$str1);$arr1=array();$k=0;//过滤空字符for($i=0;$i<count($arr);$i++){if($arr[$i]!==''){$arr1[$k]=$arr[$i];$k++;}}$cishu=0;while($wz1<strlen($fustr)){//单个替换的过程$jishu=0;for($i=0;$i<count($arr1);$i++){if(($wz=strpos($fustr,$arr1[$i],$wz1))!==false){ if($i==0)$ks=$wz; if($i==count($arr1)-1)$js=$wz+strlen($arr1[$i]);$wz1=$wz+strlen($arr1[$i]);$jishu++;}else break;}//当符合条件时if($jishu==count($arr1)){$cishu++;echo '第'.$cishu.'次替换:<br>';echo 'begin:'.($ks+1).' end:'.$js.'<br>';$leftstr=substr($fustr,0,$ks);$rightstr=substr($fustr,$js);if(!$rightstr)$rightstr='';$fustr=$leftstr.$str2.$rightstr;$wz1=$ks+strlen($str2);echo 'next:'.($wz1+1).'<br>';echo $fustr.'<br>';}else{echo '停止<br>';break;}echo '<br><br>';}return $fustr;}$str=tihuan_str($fustr,$str1,$str2);echo '替换效果:'.$str;?>
- php 使用通配符(*)达到与类似正则替换字符串的目的
- 使用objcopy 弱化符号,以达到替换函数的目的
- MYSQL-通配符与正则表达式的使用
- php正则字符串查找替换
- php 正则替换 字符串中指定的字符串
- php 类似正则获取字符串匹配内容的简单方法
- 如何使用泛型达到代码重用的目的
- 如何使用CSS达到段落开头空格的目的
- github + jenkins 如何不使用验证达到触发的目的
- 如何达到SEO的目的!?? 。
- 可以替换 UITextField 就可以达到校验目的的工具:US2FormValidator
- PHP preg_replace() 正则替换所有符合条件的字符串
- PHP preg_replace() 正则替换所有符合条件的字符串
- 使用sqlserver"查找和替换"的正则表达式和通配符功能
- RegExp对象的使用与正则替换
- UltraEdit使用正则表达式(通配符)进行查找和替换
- 利用正则表达式类解析SQL语句,达到Worklist兼容各个RIS数据库的目的
- PHP字符串正则替换函数preg_replace
- POJ 1401 Factorial
- 三角函数诱导公式大全
- [Castle ActiveRecord] 3. Validate
- 排序算法
- 2011考研政治之形势与政策
- php 使用通配符(*)达到与类似正则替换字符串的目的
- 考研政治万能答题模板
- 64位系统使用VS2010开发32位ASP.NET应用--注意事项
- 考研英语一和英语二的区别
- linux 转化文件编码
- [Castle ActiveRecord ] 4. CRUD
- 黑马程序员 (2) 学习视频教程中JAVA API部分的内容
- 英语写作短语100句
- Create Android virtual Device BY the Eclipse platform