今天帮忙给老杨解决一个正则替换name的问题,先记录下来
要替换的html代码:
<tr id="ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder2_RepeaterPersonOfChargelList_ctl05_tr1" style="height: 10px; line-height: 10px;">
<td style="width: 8px;">
<input id="ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder2_RepeaterPersonOfChargelList_ctl05_RadioButton1"
type="radio" name="ctl00$ctl00$ContentPlaceHolder1$ContentPlaceHolder2$RepeaterPersonOfChargelList$ctl05$RadioButton1" value="RadioButton1" />
</td>
<td>
52
</td>
<td style="border-color:Silver;border-width:1px;border-style:solid;width:16%;"><input name="ctl00$ctl00$ContentPlaceHolder1$ContentPlaceHolder2$TextBoxGroup"
type="text" id="ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder2_TextBoxGroup" class="textbox" /></td> </tr>
C#代码:
var xx = "<td style=\"width: 8px;\"><input id=\"ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder2_RepeaterPersonOfChargelList_ctl01_RadioButton1\"
type=\"radio\" name=\"ctl00$ctl00$ContentPlaceHolder1$ContentPlaceHolder2$RepeaterPersonOfChargelList$ctl01$RadioButton1\" value=\"RadioButton1\" /></td>";
var billno = Regex.Replace(xx, @"(?i)(?<=<input(?!((?!(value|name)).)+>)[^<>]+)name=[^>]+", "name='aaa'", RegexOptions.Compiled);
替换后的效果:这里不区分type 类型是什么
区分类型的:
(?i)(?<=<input(?!((?!(value|name)).)+>)[^<>]+)name=[^>]+value=""RadioButton1"" 不过会把value值给去掉,等看看还有没有完美的解决方法吧
注:如果想匹配其他的,则改下name
注:如果想匹配其他的,则改下name