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

|zyciis| 200分 急求 一个简单的URL正则表达式 多谢

2012-02-03 
|zyciis| 200分 急求 一个简单的URL正则表达式 谢谢如我现在有URL/A0021.aspx 要改写为 /View.aspx?CodeA

|zyciis| 200分 急求 一个简单的URL正则表达式 谢谢
如我现在有URL /A0021.aspx 要改写为 /View.aspx?Code=A0021
可以用以下代码

C# code
Regex reg = new Regex(@"([^/]*)(.aspx)", RegexOptions.IgnoreCase);Match m = reg.Match(RawUrl);if (m.Success){    RawUrl = "/View.aspx?Code=" + m.Groups[1].Value;    isMatch = true;}

而我现在有新的要求:如
要将
/A0021.aspx
改写为
/View.aspx?Code=A0021
还要可以将

/A0021.aspx?Name=zhang&Year=2008

改写为

/View.aspx?Code=A0021&Name=zhang&Year=2008


谢谢


[解决办法]
d
[解决办法]
上面写的应再多加一个条件
C# code
string result = Regex.Replace(yourStr, @"/([^/.]+)\.aspx(\?)?", delegate(Match m){if(m.Groups[2].Value == "") return "/View.aspx?Code="+m.Groups[1].Value; return "/View.aspx?Code="+m.Groups[1].Value+"&";}, RegexOptions.IgnoreCase);richTextBox2.Text = result;
[解决办法]
C# code
using System;using System.Text.RegularExpressions;class Program{  static void Main()  {    foreach (string s in new string[]{"/A0021.aspx","/A0021.ASPX?Name=zhang&Year=2008"})    {      string t = Convert(s);      Console.WriteLine("{0} -> {1}", s, t);    }  }    static string Convert(string s)  {    return Regex.Replace    (      s,      @"(?i)/([^/]*).aspx(\?)?",      delegate (Match m)      {        if (m.Value.EndsWith("?")) return "/View.aspx?Code=" + m.Groups[1].Value + "&";        return "/View.aspx?Code=" + m.Groups[1].Value;      }    );  }}/* 程序输出:/A0021.aspx -> /View.aspx?Code=A0021/A0021.ASPX?Name=zhang&Year=2008 -> /View.aspx?Code=A0021&Name=zhang&Year=2008*/ 

热点排行