0

我正在尝试计算服务器控件的 ASP.NET 自动命名的开销。我有一个页面,其中包含从数百个嵌套的 ASP.NET 控件呈现的 7,000 行 HTML,其中许多具有长度为数百个字符的 id/name 属性。

理想情况下,我想要的是将每个以“ctl00”开头的 HTML 属性值提取到列表中的东西。如果我知道正则表达式应该是什么,Notepad++ 中的正则表达式查找功能将是完美的?

例如,如果 HTML 是:
<input name="ctl00$Header$Search$Keywords" type="text" maxlength="50" class="search" />

我希望输出类似于:
name="ctl00$Header$Search$Keywords"
更高级的搜索也可能包括元素名称(例如控件类型):
input|name="ctl00$Header$Search$Keywords "

为了同时处理 Id 和 Name 属性,我将简单地重新运行搜索以查找 Id 而不是 Name(即,我不需要同时搜索两者的东西)。

最终输出将是一个 Excel 报告,其中列出了页面上服务器控件的数量,以及每个名称的长度,可能按控件类型排序。

4

4 回答 4

1

又快又脏:

搜索

\w+\s*=\s*"ctl00[^"]*"

这将匹配任何看起来像属性的文本,例如name="ctl00test"attr = "ctl00longer text"。它不会检查这是否真的发生在 HTML 标记中 - 这有点难做,也许是不必要的?它也不会检查标签名称中的转义引号。像往常一样使用正则表达式,所需的复杂性取决于您想要匹配的内容以及您的输入看起来像什么......

于 2008-12-12T13:21:33.943 回答
0

“7000”?“数百”?亲爱的上帝。

因为您只是在文本编辑器中查看源代码,所以试试这个... /(id|name)="ct[^"]*"/

于 2008-12-12T13:21:43.477 回答
0

回答我自己的问题,最简单的方法是使用 BeautifulSoup,它的标语是“脏 HTML”Python 解析器:

“你没有写那个糟糕的页面。你只是想从中获取一些数据。现在,你并不真正关心 HTML 应该是什么样子。这个解析器也不关心。”

它有效,可以从这里获得 - http://crummy.com/software/BeautifulSoup

于 2010-09-15T21:45:44.927 回答
-1

我建议使用 xpath,就像在这个问题中一样

于 2008-12-12T13:45:44.737 回答