• ベストアンサー

a要素の末尾のスラッシュを正規表現で削除

htmlの開始タグの中の末尾から2文字目のスラッシュのみを指定する方法を探しています。 例: <a href="test.jpg" />文字列</a> 上記のような間違いが大量にあるHTMLファイルを綺麗にしたいので、正規表現での指定方法を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.2

この手の処理を正確に行うのに正規表現だけではかなり荷が重いのですが、 以下の記述なら、まず大抵の場合で大丈夫でしょう。 置換前: <a\b([^>]*?)/> 置換後: <a$1> 実行例 $ perl -pi -e 's|<a\b([^>]*?)/>|<a$1>|g' *.html

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

正規表現は使用する言語により方言がありますので、言語が提示されないと正確な回答は出来ません。 使用される言語と環境(OS)が提示されていないので、perlの正規表現で記述します。 $line = '<a href="test.jpg" />文字列</a>'; $line =~ s/^(\s*<a\s+.*)<\/a>(\s*)$/$1<a>$2/; print $line; $lineに変更したい文字列があった場合、上記の正規表現で/をとることが出来ます。 今後、正確な回答を期待される場合は、環境(windoows,linux等)と使用言語(sed,ruby,perl等) を提示されると、良い回答が得られるかと思います。

すると、全ての回答が全文表示されます。

関連するQ&A