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
" "

Id と Name の両方の属性に対処するために、Name ではなく Id を探して検索を再実行します (つまり、両方を同時に検索する必要はありません)。

最終的な出力は、ページ上のサーバー コントロールの数と、それぞれの名前の長さをリストする 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

私自身の質問に答えると、これを行う最も簡単な方法は、タグラインが次のような「ダーティ HTML」Python パーサーである BeautifulSoup を使用することです。

「あなたはそのひどいページを書いたわけではありません。そこからデータを取得しようとしているだけです。今のところ、HTML がどのように見えるべきかはあまり気にしていません。このパーサーも同様です。」

動作し、ここから入手できます - http://crummy.com/software/BeautifulSoup

于 2010-09-15T21:45:44.927 に答える
-1

この質問のように、xpathをお勧めします

于 2008-12-12T13:45:44.737 に答える