我现在有这么一串字符串,
<table>
<tr>
<td>文件名称(<span>*</span>) </td>
<td>发送何地(<span>*</span>) </td>
<td>份数(<span>*</span>) </td>
<td>用章数(<span>*</span>) </td>
<td>删除 </td></tr>
<tr>
<td><textarea >er</textarea> </td>
<td><textarea >6</textarea> </td>
<td><input type="text" value=6 > </td>
<td><input type="text" value=5 > </td>
<td><img src="http://upm.eip.cmstest.com/style/img/icon_del.gif" /> </td></tr></table>因为我要将这么一串HTML字符串当成一个xml来解析,那么就必须格式规范,但是现在格式不规范。
我要将<input type="text" value=6 >这些更改成<input type="text" value="6" />这种标准格式。谁能告诉我正则怎么写?
我写了一个,但是不行,
Regex.Replace("上面的HTML字符串", "^value=[\d+]$","^value=\"[\d+]$\"", RegexOptions.IgnoreCase);
<table>
<tr>
<td>文件名称(<span>*</span>) </td>
<td>发送何地(<span>*</span>) </td>
<td>份数(<span>*</span>) </td>
<td>用章数(<span>*</span>) </td>
<td>删除 </td></tr>
<tr>
<td><textarea >er</textarea> </td>
<td><textarea >6</textarea> </td>
<td><input type="text" value=6 > </td>
<td><input type="text" value=5 > </td>
<td><img src="http://upm.eip.cmstest.com/style/img/icon_del.gif" /> </td></tr></table>因为我要将这么一串HTML字符串当成一个xml来解析,那么就必须格式规范,但是现在格式不规范。
我要将<input type="text" value=6 >这些更改成<input type="text" value="6" />这种标准格式。谁能告诉我正则怎么写?
我写了一个,但是不行,
Regex.Replace("上面的HTML字符串", "^value=[\d+]$","^value=\"[\d+]$\"", RegexOptions.IgnoreCase);
<tr>
<td>文件名称(<span>*</span>) </td>
<td>发送何地(<span>*</span>) </td>
<td>份数(<span>*</span>) </td>
<td>用章数(<span>*</span>) </td>
<td>删除 </td></tr>
<tr>
<td><textarea >er</textarea> </td>
<td><textarea >6</textarea> </td>
<td><input type=""text"" value=6 > </td>
<td><input type=""text"" value=5 name=owen > </td>
<td><input type=""text"" value=5 name=owen /> </td>
<td><img src=""http://upm.eip.cmstest.com/style/img/icon_del.gif"" /> </td></tr></table>";
string result = Regex.Replace(str, @"(?is)<input[^/>]+(?=>)", "$0/");
result = Regex.Replace(result, @"(?is)(?<=<.*?=)[^'"">]+?(?=\s)", "\"$0\"");
Console.WriteLine(result);
/*
<table>
<tr>
<td>文件名称(<span>*</span>) </td>
<td>发送何地(<span>*</span>) </td>
<td>份数(<span>*</span>) </td>
<td>用章数(<span>*</span>) </td>
<td>删除 </td></tr>
<tr>
<td><textarea >er</textarea> </td>
<td><textarea >6</textarea> </td>
<td><input type="text" value="6" /> </td>
<td><input type="text" value="5" name="owen" /> </td>
<td><input type="text" value="5" name="owen" /> </td>
<td><img src="http://upm.eip.cmstest.com/style/img/icon_del.gif" /> </td></tr></table>
*/
string html = @"<table>
<tr>
<td>文件名称(<span>*</span>) </td>
<td>发送何地(<span>*</span>) </td>
<td>份数(<span>*</span>) </td>
<td>用章数(<span>*</span>) </td>
<td>删除 </td></tr>
<tr>
<td><textarea >er</textarea> </td>
<td><textarea >6</textarea> </td>
<td><input type=""text"" value=6 > </td>
<td><input type=""text"" value=5 > </td>
<td><img src=""http://upm.eip.cmstest.com/style/img/icon_del.gif"" /> </td></tr></table>"; Regex reg = new Regex(@"(?<=<[^<]+?=)\b[^\s>]+");
Console.WriteLine(reg.Replace(html,e=>"\"" + e.Value + "\""));