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

怎么用正则表达式实现如下替换和逆反操作
html字符串内容 (包含<img src="ExistingVariables.aspx信息就执行正则)
.....
<img src="ExistingVariables.aspx?text=[工程项目名称]&formpost=1&fontBackgroundIsTransparent=1" id="" innername="[C_1_1_t]" stepid="[1]" />
.....
转成

html字符串内容(包含<ST2:ExistingVariables信息就执行正则)
....
<ST2:ExistingVariables stepID=[1] innername="[C_1_1_t]" tooltip="[工程项目名称]"></st2:ExistingVariables>
....

还有逆反正则操作进行反向转换

我自己写了一件正向的正则表达式,可是没有效果,不知道错在哪
str = Regex.Replace(str, @"(?is)<img(?=[^>]*?src=""ExistingVariables.aspx?text=""([^""\.]+)[^""]*"")(?=[^>]*?innername=""([^""]+)"")(?=[^>]*?stepid=""([^""]+)"")[^>]*>", "<ST2:ExistingVariables stepID=[$3] innername=\"[$2]\" tooltip=\"[$1]\"></ST2:ExistingVariables>");


请高手指点一下,最好能看出正转和反转的两条正则表达式

------解决方案--------------------
str = Regex.Replace(str, @"(?is)<img(?=[^>]*?src=""ExistingVariables\.aspx\?text=([^""&]+)[^""]*"")(?=[^>]*?innername=""([^""]+)"")(?=[^>]*?stepid=""([^""]+)"")[^>]*>",
                "<ST2:ExistingVariables stepID=$3 innername=\"$2\" tooltip=\"$1\"></ST2:ExistingVariables>");