人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【正規表現】HTMLを加工するための正規表現を3種類教えてください。
1.HTMLのタグからすべての属性を除去。
2.特定のタグを開始・終了セットで除去。
3.コメントを除去。

同様のことが簡単にできるツールがあれば、それでもかまいません。
よろしくお願いします。

●質問者: memo77
●カテゴリ:コンピュータ
✍キーワード:HTML コメント タグ 属性 正規表現
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ぽこたん
●35ポイント

秀丸で正規表現ではこんな感じでやれます

http://hide.maruo.co.jp/

●特定文字列の全角カナと半角カナの両方を検索

リンゴ|リンゴ(半角カナ)

●カッコ数字文字を検知

\([a-z0-9]*\)

●すべての全角検知

[^ -~。-゚]

●すべてのid属性※を検知

id="[a-z0-9_-]*"

●すべてのid属性を削除

id="[a-z0-9_-]*"

記入なし

●すべてのid属性の値をtestにする

id="[a-z0-9_-]*"

id="test"

●すべてのid属性の値を空白にする

id="[a-z0-9_-]*"

id=""

●すべてのwidthの数値を検知

width="[0-9]*"

●すべてのwidthの数値を100pxにする

width="[0-9]*"

width="100px"

●すべてのwidthの数値を空白にする

width="[0-9]*"

width=""

●すべてのwidthとheightの値を空白にする

(width|height)="[0-9]*"

\1=""

●すべてのwidthとheightの属性を削除

(width|height)="[0-9]*"

記入なし


2 ● t-wata
●35ポイント

秀丸は知らないので、vimの場合の話です。http://www.vim.org

すべての属性削除

 %s/\(<[a-zA-Z0-9]\+\)\([^>]\|\n\)\{-}>/\1>/g

特定のタグを削除(Aタグの削除の例、上記属性削除済みを前提)

 %s/<a\(\s\|\n\)*>\(.\{-}\)<\/a>/\2/g

コメントを削除

 %s/<!--\(.\|\n\)\{-}-->//g

属性削除は、

<a
href="hogehoge"

のように改行をはさんだり、

<a href=hogehoge><td nowrap>

のようにダブルクオートやクオートを省略したり、a=bの形以外で書かれている属性も考慮する必要があります。また、

 var href="hogehoge"

のようなものはマッチしないようにする必要もあります。

上記の正規表現では<[a-zA-Z0-9]\+の表現でタグの開始、\([^>]\|\n\)\{-}>にてタグ開始以降タグの末尾までにあるすべての文字(改行も含む)にマッチさせています。

その上で、タグの開始を()でくくり、マッチした文字列(<とタグの名前)を置換時に参照できるようにしています。

また、\{-}は最短マッチの表現です。最短マッチは言語によってはサポートされていないので注意してください。

あと不要なタグの削除は、属性削除してるなら、ペア考慮よりも直接開始タグ終了タグを直接指定して削除する方が手っ取り早いですよ。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ