ASP.NET 4.0更改了控件的呈现方式,以便RegEx解析ASP.NET呈现的HTML不再起作用

| 尝试查找href标记以字符串形式保存html中的动态更新它们时,自2.0升级到4.0以来一直运行良好一段时间的RegEx已损坏。 正则表达式:
<a\\\\s+[^>]*(href=\\\"([^#\\\"]+)\\\")[^>]*>(.*)</a>
我们会在这些href中打上井号(#),因为这意味着它们已经更新,但想返回所有其他实例。问题来了,因为现在我们的javascript函数以
&#039;
而不是单引号输出,这意味着它们由于hash(#)而与测试不符。 .Net是否已从2.0更改为4.0? 更新 这就是.Net 4.0吐出来的内容,并且如上所述已将单引号自动更改为
&#039;
<a class=\"ctl00_Menu_1 Menu_DynamicMenuItemStyle ctl00_Menu_6\" href=\"javascript:__doPostBack(&#39;ctl00$Menu&#39;,&#39;Menu Parent\\\\Menu Child&#39;)\" style=\"border-style:none;font-size:1em;\">Menu Child</a>
以前,它输出以下内容:
<a class=\"ctl00_Menu_1 Menu_DynamicMenuItemStyle ctl00_Menu_6\" href=\"javascript:__doPostBack(\'ctl00$Menu\',\'Menu Parent\\\\Menu Child\')\" style=\"border-style:none;font-size:1em;\">Menu Child</a>
我们的正则表达式已正确捕获了该错误,但我们必须更新以下内容:
@\"<a\\s+[^>]*(href=\\\"\"([^#\\\"\"][^\\\"\"]+)\\\"\")[^>]*>(.*)</a>\"
现在,这说明了新出现的哈希值,而没有筛选出已编码的哈希值。我已经解决了这个问题,并且知道有一个更改,尽管我并不是100%进行更改的地方。感谢您的关注。     
已邀请:

要回复问题请先登录注册