東京生まれHOUSE MUSIC育ち

悪そうな奴はだいたい友達なの?

htmlのコメントや属性を正規表現で検索する

htmlファイルにspanタグやdivタグにstyleやmarignといった属性が入っています。 可読性をあげて、メンテナンスしやすくするため、cssファイルに切り出したく、記述されているstyle属性を削りたいと試行錯誤しています。

これまでgolangでいろいろと試して、以下のように実装したので自分用にまとめます。

コメントを正規表現で検索する

以下の正規表現で検索できます。

<!--[\s\S]*?-->

styleの属性値を正規表現で検索する

色を定義するcolorは残したいというのがあるので、colorは入れてません。

ポイントは「(;|“)」の部分です。属性値の記述終わりにセミコロンやダブルクォートの2パターンがあるのでこのように変更しています。

margin.+?(;|")|font-.+?(;|")|margin.+?(;|")|padding.+?(;|")|line-.+?(;|")|text-.+?(;|")

style属性が空のものを検索する

style属性がダブルクォートだけで、中身が空のもの。たとえば、「style = “ "」のようなものは以下で検索します。

\sstyle="\s+?"

bluemondayは見送った

golangにはbluemondayというサニタイズ用のパッケージがあります。当初はこれを使用しようと試みていました。しかし、style属性は否応無く削除されてしまうようなので、使用するのを諦めました。というのも、colorだけは残したかったので。

もう少し検証すれば、残ったかもしれないです。

詳説 正規表現 第3版

詳説 正規表現 第3版