C# 正则表达式里面,怎样能够实现一次性替换所有的字符串啊。比如 String content = "a1 b2 c3 d4 f5";
现在我要把 "a1" 和 "b2" 和 "c3" ,分别替换为 "A1" ,"B2" ,"C3"
怎样能让这三个替换同时进行。 而不是先替换a1,再替换b2,最后再c3。希望能贴个例子出来。谢谢!
现在我要把 "a1" 和 "b2" 和 "c3" ,分别替换为 "A1" ,"B2" ,"C3"
怎样能让这三个替换同时进行。 而不是先替换a1,再替换b2,最后再c3。希望能贴个例子出来。谢谢!
string[] newvar = {"A","B","C"};
string[] oldvar = {"a","b","c"};
for(int i=0;i<newvar.Length;i++){
var = var.Replace(oldvar[i],newvar[i]);
}
Response.Write(var);
string[] newvar = {"A","B","C"};
string[] oldvar = {"a","b","c"};
for(int i=0;i<newvar.Length;i++){
var = var.Replace(oldvar[i],newvar[i]);
}
Response.Write(var);这样做也是对var进行了三次搜索才成功的.
请问有没有什么办法能够提高替换的效率?
就是var这个变量,一次的搜索后,就能替换全部的变量.
var = var.Replace(b;B);
var = var.Replace(c;C);这个怎样。。不需要for来循环了~~
{
return m.Value.ToUpper();}
static void Test42()
{ String content = "a1 b2 c3 d4 f5"; content = Regex.Replace(content, "[abc]", new MatchEvaluator(MatchEval));
Console.WriteLine(content);}but the performance is probably worse than looping
<table >
<tr> <td> @Title1 </td><td>@CreateDate</td> </tr>
<tr> <td colspan=2> @Content1 </td> </tr>
</table>
" .
如果这个html里面有些特定的标记,现在要把这些标记替换出来。这些标记可能有好几个,大家说怎么能够执行得最快。
static Hashtable ht = new Hashtable();static string MatchEval(Match m)
{
return ht[m.Value];}
static void Test42()
{ ht["@Title1"] = "abc";
ht["@CreateDate"] = "def";
...; String content = "....."; content = Regex.Replace(content, @"\@[^<>]+", new MatchEvaluator(MatchEval));
Console.WriteLine(content);}
{
return "> " + ht[m.Groups["1"].Value] + " <";}