首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

再正则表达式

2012-04-11 
再求一个正则表达式ArticleDetail.aspx?ArticleIDe69258bf-ef3c-43e0-8795-98f2a0b37652&Page1需要把它

再求一个正则表达式
ArticleDetail.aspx?ArticleID=e69258bf-ef3c-43e0-8795-98f2a0b37652&Page=1

需要把它找出来替换成

xxxx/xxx/e69258bf-ef3c-43e0-8795-98f2a0b37652/index_2.shtml

这个正则如何写?最好能用regex.replace直接替换的


[解决办法]
try

string yourStr = ...............;
string result = Regex.Replace(yourStr, @ "ArticleDetail\.aspx\?ArticleID=(? <arg> [^&]*).* ", "xxxx/xxx/${arg}/index_2.shtml ", RegexOptions.IgnoreCase);

[解决办法]
不是吧,这个问题刚有人问过
[解决办法]
Regex.Replace( @ "ArticleDetail\.aspx\?ArticleID=(? <arg> [^&]*).* ", "xxxx/xxx/${arg}/index_2.shtml);
[解决办法]
string str = "ArticleDetail.aspx?ArticleID=e69258bf-ef3c-43e0-8795-98f2a0b37652 ";
str = System.Text.RegularExpressions.Regex.Replace (str, "ArticleDetail.aspx\\?ArticleID=([^$]*?)$ ", "xxx/xxx/$1 ");
Response.Write(str);
楼上的太快了
[解决办法]
看看
[解决办法]
try

string yourStr = ..............;
string result = Regex.Replace(yourStr, @ "ArticleDetail\.aspx\?ArticleID=(? <arg> [^&]*)&Page=(? <num> \d+) ",new MatchEvaluator(regReplace) , RegexOptions.IgnoreCase);


private string regReplace(Match m)
{
return "xxxx/xxx/ " + m.Groups[ "arg "].Value + "/index_ " + (Convert.ToInt32(m.Groups[ "num "].Value) + 1) + ".shtml ";
}
[解决办法]
这里涉及到类型转换和计算,所以无法直接用Regex.Replace做到,可以用委托实现,如上,也可以把需要的两部分提取出来,处理后拼接字符串来实现
[解决办法]
非得用 Reg 迈?

试试这个,更直观,专门处理 URL

string oldUrl = "ArticleDetail.aspx?ArticleID=e69258bf-ef3c-43e0-8795-98f2a0b37652&Page=1 ";
System.Collections.Specialized.NameValueCollection queryString = HttpUtility.ParseQueryString(oldUrl.Substring(oldUrl.IndexOf( "? ")));
string newUrl = String.Format( "xxxx/xxx/{0}/index_{1}.shtml ", queryString[ "ArticleID "], queryString[ "Page "]);
[解决办法]
那我后面给出的代码你试过了吗,得到的就是这个结果

string yourStr = ..............;
string result = Regex.Replace(yourStr, @ "ArticleDetail\.aspx\?ArticleID=(? <arg> [^&]*)&Page=(? <num> \d+) ",new MatchEvaluator(regReplace) , RegexOptions.IgnoreCase);


private string regReplace(Match m)
{
return "xxxx/xxx/ " + m.Groups[ "arg "].Value + "/index_ " + (Convert.ToInt32(m.Groups[ "num "].Value) + 1) + ".shtml ";
}
[解决办法]
Response.Write( " </br> " + Regex.Replace( " <a href=\ "ArticleDetail.aspx?ArticleID=17708f69-ee59-4546-b891-c5ca81ffbc11&Page=1\ "> ", @ "^ <a\shref=[^\?]*\?[^=]+=(? <id> [^\& " "]*)\&Page=(? <page> [^ " "]*).*$ ", new MatchEvaluator(regstr),RegexOptions.IgnoreCase));

public string regstr(Match m)
{


return "xxxx/xxx/ " + m.Groups[ "id "] + "/index_ " + Convert.ToString((int.Parse(m.Groups[ "page "].ToString()) + 1)) + ".shtml ";
}



[解决办法]
lxcnn(过客)
十处求正值,十一处都在

热点排行