この質問に対して皆さんが様子を見ている理由は、「正規表現はこれです」と一つ返事で言えないからです。
HTML の ダブルクォートされていない属性部分 にマッチさせて置換するとなると、単純に
(\s[a-zA-Z0-9-]+)=([^" >]+)
を検索し、それを $1="$2"
で置換すればそれっぽく動作しますが、HTML でないテキストの中に似たパターンがあり誤爆しかねません。出来ればパターンの中に <
や >
を含んでタグの一部としてマッチさせ誤爆を防ぎたいのです。ですがそれには「パターンには含むが置換対象としては外す」という場合に使う特殊な記法が必要になります。その特殊な記法が perl や ruby や vim によって異なります。また置換の際の後方参照文字も異なります。Visual Studio Code では $1
や $2
ですが、エディタや言語では \1
や \2
だったりします。Dreamweaver は持っていませんので確認出来ませんが、どちらかで動作すると思います。
上記のパターンで検索/置換しても、おそらく動作するかと思いますが、誤爆が無いとは断言できません。あくまで質問文にあった HTML での動作確認だけしかしていません。 必ずバックアップを取ってから お試し下さい。
なお、パターンの説明をしておきます。
()
で括ったのは属性名と属性値です。あえて属性名をマッチさせ、置換文字列にも含む($1)事で誤爆を防いでいます。属性名の先頭に空白を含んでいるのも誤爆を防ぐためです。
属性値の方は
- ダブルクォートでない
- タグの終わりでない
- 空白でない
でマッチしています。これにより
html
1<a href=aaa.html class=bbb></a>
href にも class にも作用する様にしています。
こんな説明でお分かり頂けますか?