日期:2014-05-17  浏览次数:20851 次

这条正则表达式 反着怎么写?
正则表达式如下:
str = Regex.Replace(str, @"(?is)<img(?=[^>]*?src=""Control/([^""\.]+)[^""]*"")(?=[^>]*?title=""([^""]+)"")(?=[^>]*?alt=""([^""]+)"")(?=[^>]*?height=""([^""]+)"")(?=[^>]*?width=""([^""]+)"")[^>]*>", "<ST:$1 ID=\"$2\" runat=\"server\" ToolTip=\"$3\" Height=\"$4\" Width=\"$5\"></ST:$1>");
实现了例如:

<img src="Control/TextBox.gif" id="demo_1" title="demo_1" alt="TextBox" height="25" width="100" />
转化为
<ST:TextBox ID="demo_1" runat="server" ToolTip="TextBox" Height="25" Width="100"></ST:TextBox>

现在想反过来,还原它,但是对正则实在不熟,改了半天没有改出来,请高手指点
str = Regex.Replace(str, @"这里该怎么写正则", "<img src=\"Control/$1.gif\" id=\"$2\" title=\"$2\" alt=\"$3\" height=\"$4\" width=\"$5\" />");

------解决方案--------------------
  string str = "<ST:TextBox ID=\"demo_1\" runat=\"server\" ToolTip=\"TextBox\" Height=\"25\" Width=\"100\"></ST:TextBox>";
            str = Regex.Replace(str, @"(?is)<ST:(\w+)(?=[^>]*?id=""([^""]+)"")(?=[^>]*?ToolTip=""([^""]+)"")(?=[^>]*?Height=""([^""]+)"")(?=[^>]*?Width=""([^""]+)"")[^>]*></ST:\1>", "<img src=\"Control/$1.gif\" id=\"$2\" title=\"$2\" alt=\"$3\" height=\"$4\" width=\"$5\" />");