这条正则表达式 反着怎么写?
正则表达式如下:
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="这条正则表达式 反着如何写" 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" />");