问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求教PHP正则替换问题

发布网友 发布时间:2022-04-06 05:02

我来回答

2个回答

热心网友 时间:2022-04-06 06:31

看了上楼的,怕前者又费脑细胞,又误人子弟,通配一些的方法,而不是写死:

<?php
function getval($str1 , $str2){
$data = array();
//正则所有中括号的标签,转换$str2为正则字符串
preg_match_all('/\[!--(.*)--\]/iUs',$str2,$res);
$preg=str_replace($res[0],"@#@#@",$str2);//先替换成@#@#@
$preg=preg_quote($preg);//转义正则字符
$preg=str_replace("@#@#@","(.*)",$preg);//然后再替换成正则通配字符
//正则获取对应的值
preg_match('/'.$preg.'/i',$str1,$res2);
if(!empty($res2)){
foreach($res[1] as $k=>$v){
$data[$v]=$res2[$k+1];//因为preg_match正则的值偏移1位,所以加一
}
}
return $data;
}
$str1 = 'tel is 123456 qq is 756324 my age is 20 and my name is ben';
$str2 = 'tel is [!--tel--] qq is [!--qq--] my age is [!--age--] and my name is [!--name--]';

//只要模板格式都是[!--str--]格式,都可以使用该函数
$rlt = getval($str1 , $str2);
print_r($rlt);
?>

另外返回的是tel,不是'tes'=>123456,好像写错了

热心网友 时间:2022-04-06 07:49

研究了一会写出来了,不采纳都对不起我死去的脑细胞,下面上代码,直接复制就能用

<?php
echo "<meta charset=utf-8>";
//因为正则处理简单,所以空格别忘了打
    $str1 = 'tel is 123456 qq is 756324 my age is 20 and my name is ben';
//正则语句;
$preg = "/tel is ([0-9]+) qq is ([0-9]+) my age is ([0-9]+) and my name is ([a-z0-9A-Z]+)/";
//封装函数
function getval($str,$preg){
$arr = array();
if(@preg_match($preg, $str, $matches)) {
//之所以没有$matches[0] 是因为  $matches[0]  就是这个句子,也就是 $str;
$arr['tel']= $matches[1];
$arr['qq']= $matches[2];
$arr['age']= $matches[3];
$arr['name']= $matches[4];
}
return $arr;
}
//实际应用
$a = getval($str1,$preg);
print_r($a);
?>

追问你这种脑细胞死了就算了,我的意思是任意两个 字符型 参数就能返回要的结果..
我上面只是打比方,结果你都写死了...

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见老婆光脚踩谷子 王者荣耀国服中,不论进入游戏还是没开始游戏,所有玩家发送的任何消息... 我的滴滴开空调活动怎么没了 为什么腾讯视频显示还是要流量看 没有联通中国结标志 电脑不能装win7买电脑时他们说只能装win10系统不能装win7 英雄联盟手游 手机lol游戏盒子现在叫什么? 英雄联盟手机盒子看不了比赛记录 手游英雄联盟视频在哪里看手机英雄联盟盒子在哪看我游戏中录的视频 英雄联盟盒子看视频只有声音没有画面,不是网速的问题,也不是电脑卡,是... 为什么英雄联盟盒子没发看视频 php正则匹配将section替换成div标签 如何用正则替换标签内的内容? php 正则表达式替换自定义标签 php 正则如何匹配2级域名 php 如何用正则表达式判断字符串是否是域名 求高手写php验证域名的正则表达式 php正则表达式替换网址自动加链接 PHP正则替换? php 正则表达式 域名匹配 PHP如何把手机用户跳转到手机版网页 php屏蔽特殊字符,好像\没有被屏蔽,代码如下 如何修改 PHP怎么将文件名中不能包含的字符替换掉 php 怎么删除不可见字符(字符串里面的)? php 怎么删除不可见字符 请问我下载的PHP源码乱码,请问该怎样设置字符编码呀? PHP中怎么将UTF-8字符串转化为ANSI编码 怎么设置phpstorm的字符编码 怎样在php中改变字符串编码格式 PHP文件打开中文字为乱码 php scandir() 中文文件或目录出现乱码怎样解决? php正则匹配html标签并替换掉 PHP正则替换文本内容!内容不支持标签想替换为,号 PHP实现word以及其他常见格式文档在线预览 php实现仿网易邮箱在线预览文档功能 php怎样在线预览office文档 跪求php实现在线预览excel文件功能,类似邮箱里的预览文件,大神帮帮忙,来上代码 我想把pdf等格式的文件转换成swf实现在线预览 看到你已经解决了这个问题 可否指点一二 PHP的几种运行模式 php有哪几种运行模式 PHP是怎么运行的 php文件怎么运行? PHP运行机制 Apache下PHP的几种工作方式 如何让PHP自动运行 - PHP进阶讨论 PHP实现编辑本地TXT PHP无法写本地文件? php 源码怎么本地调试 ?? phpstorm怎么改本地同步文件夹 怎么设置本地 php 目录读写 SUSE LINUX编译PHP程序时出错