HTML5にからは空要素(void elements)に閉じタグを意味する/
が必須では無くなったとはいえ、混在させたりしているのはよろしくないうえにXHTMLに変換する際にややこしいので閉じタグする方向で見様見真似で一括置換した。正規表現も使えるようにならんとなあ。
HTML5の空要素は8 The HTML syntax -- HTML5 #elementsによると、
area
base
br
col
command
embed
hr
img
input
keygen
link
meta
param
source
track
wbr
だそうなので、これらのタグで最後が/>
で終わっていないものを置換みたいな。
<(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)([^>]*[^/])>
<\1\2 />
参考