正则表达式替换{}请教

问题描述

正则表达式替换{}请教

http://www.hao123.com/down.php?pid=4014&Id={a:0}&aaa={b:222}请教这种正则怎么替换?
{a:0}替换成1,{b:222}替换成2

解决方案

 $url="http://www.hao123.com/down.php?pid=4014&Id={kk:0}&aaa={b:222}";
$arr=array(
'kk'=>1,
'b' =>2,
'c' => 3,
);
foreach ($arr as $k => $value) {
if(strstr("$url","$k:")){
$url=preg_replace("/\{".$k.":\d+\}/",$value,$url);
}
}
echo $url;

解决方案二:

js

 'http://www.hao123.com/down.php?pid=4014&Id={a:0}&aaa={b:222}'.replace(/{a:0}/,'1').replace(/{b:222}/,'2')

解决方案三:

如果a,b都是变量呢?
$url="http://www.hao123.com/down.php?pid=4014&Id={kk:0}&aaa={b:222}";
$arr=array(
'kk'=>1,
'b' =>2,
'c' => 3,
);
foreach ($arr as $k => $value) {
if(strstr("$url","$k")){
$url=preg_replace("/{.*?:.*?}/",$value,$url);
}
}
echo $url;

这样的话,都替换成一个了,http://www.hao123.com/down.php?pid=4014&Id=1&aaa=1,显然是错的,
应该是:http://www.hao123.com/down.php?pid=4014&Id=1&aaa=2;

时间: 2024-10-29 12:19:48

正则表达式替换{}请教的相关文章

c#-C# 正则表达式替换问题

问题描述 C# 正则表达式替换问题 请教:有一个字符串包含"<photo>abcde</photo>",不管"<photo></photo>"里面是什么,我都想把它替换成"",也就是空.在C#里应当怎么写呢? 我只知道 using System.Text.RegularExpressions; public static string Replace(string input, string pat

PHP教程:基于正则表达式替换的模板引擎

很久没有遇上PHP难题了,这次正则问题占了一点时间,还是老问题最大回溯.递归限制问题.学习透之后其实并不难修改调试有这类问题的正则.主要是以下几点. 基于正则表达式替换的模板引擎很容易遇上正则表达式最大回溯/递归的限制. 惰性匹配并不可怕,正常情况下模板并不会不够用,往往不会超出限制,discuz的模板引擎就大量使用了.但是因此而不去注意.不去学习,则容易书写错误并遇上问题. 当preg_*返回的是null的时候则要注意了,判断函数是is_null. 出错并不可怕,但是最好把错误都完整的输出,这

Dreamweaver中使用正则表达式替换href中的内容

 可能在dw中使用正则表达式替换字符串的朋友很少,下面我来给大家介绍Dreamweaver中使用正则表达式替换href中的内容吧.    在Dreamweaver中使用正则表达式替换href中的内容,就像下面这些href中的内容复杂多样的情况下,href="/html/u.html",href="/tuho/huko.html",想将它们全部替换成href="#" ,具体做法如下: 查找: href="[^"]*"

PHP实现通过正则表达式替换回调的内容标签

  本文实例讲述了PHP实现通过正则表达式替换回调的内容标签.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 function my_wp_plugin_tag_action($content,$tag,$function,$args = FALSE) { // match all regular expressions preg_match_all($tag,$content,$match

JS正则表达式替换页面中内容

问题描述 JS正则表达式替换页面中内容 我想用正则表达式替换table中除了标签""<tr class=""template"" ng-repeat=""model in model.child""></td>""里面的ng-model中的内容,将ng-model=""model.*""替换成ng-model="&

EditPlus 正则表达式替换字符串详解_正则表达式

EditPlus的查找,替换,文件中查找支持以下的正则表达式: Expression Description \t Tab character. \n New line. . Matches any character. | Either expression on its left and right side matches the target string. For example, "a|b" matches "a" and "b".

正则去除所有匹配项-正则表达式替换所有匹配项

问题描述 正则表达式替换所有匹配项 var str= '[张三]asd[张三丰]'; function getStrLength(str) { var len = str.length; var reg = /([[u4E00-u9FA5]]{2,4})+$/; for (var i = 0; i < len; i++) { str.replace(reg,"1"); } return str.length; } 怎么把匹配到的张三.张三丰之类替换为字符'1' 解决方案 /**/

Regex.Replace正则表达式替换问题

问题描述 Regex.Replace正则表达式替换问题 有一个字符串:10[?2] 我换把这个字符串用正则表达式Regex.Replace方法替换成: 102要怎么写? 解决方案 Regex.Replace(s, @"(d+)[?2]", "${1}" + "2"); 解决方案二: 你都知道要替换的内容了还有必要用正则嘛..

数据库-python 处理大量数据的正则表达式替换问题

问题描述 python 处理大量数据的正则表达式替换问题 如图我有一个文件有大量类似这样的数据,我在数据库内有这些ip地址跟路由器号的对应关系,我想要把这些ip地址全部替换为对应的路由器号.目前我用的是逐行用正则表达式找到这些ip地址并进行替换,但因为一个文件有300多万行,处理起来很慢,有没有什么方法可以使得处理更快??? 解决方案 如果先排序再替换的话可能会快点,但是你这是路由追踪信息,那就不能排序了,否则排序后对路由追踪就没有意义了,只能逐行替换. 解决方案二: 如果是一行行数据 那么可以