• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特定タグ以外を変換したい)

特定タグ以外を変換する方法

このQ&Aのポイント
  • HTML文書から特定のタグ以外を変換する方法について教えてください。
  • <[^]とiが上手く作用せず変換がうまくいかない問題について知りたいです。
  • 効率的な方法で特定タグ以外を変換する方法についてご教授ください。

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

$foo =~ s/<(\/?[^\/a][^>]*)>/##$1##/ig; かな?

dany
質問者

お礼

ありがとうございます。:-) その後いろいろ試してこちらでも同じものに行き着きました。 ところで「()」のグループ化で「このグループ以外」って指定は できないんでしたっけ? [^(A|FONT|B|BR)] みたいな…。

その他の回答 (2)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.3

> 「教えてあげないと」の意味がよくつかめません。 [^(A|FONT|B|BR)] の ^ に期待していることは、 <\/?([a-zA-Z]+).*> の \1 に相当するところのうちの A|FONT|B|BR 以外ってこと ですもんね。 正規表現で言うと、単純に A|FONT|B|BR 以外って言っちゃうと 長さ0の文字列や空白も、それに相当しますから。

dany
質問者

お礼

>長さ0の文字列や空白も、それに相当しますから。 そうですよね。自分でもあとから気付きました。ハズかしいです。^^; 最終的にはこんな感じになりました。 $oktag = 'A|B|FONT|BR'; $hoe =~ s/\<(?!\/?($oktag)( [^>]*)?>)([^>]*)>/&lt;$3&gt;/oisg; 実際は value="<br>" とかコメントタグが入ってくると無効になって しまいますがとりあえずはこれでいいかなと。 ありがとうございました。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

> ところで「()」のグループ化で「このグループ以外」って指定は > できないんでしたっけ? > > [^(A|FONT|B|BR)] > みたいな…。 無い。 「このグループ以外」と言っても、あなたは暗黙に英数字からなる単語の うち、と考えているわけですから、それも教えてあげないと。 でも、私は、それを一気に書ける正規表現を知りません。

dany
質問者

お礼

やはりそうですか。ありがとうございました。 「教えてあげないと」の意味がよくつかめません。 もしよければ補足などお願いします。

関連するQ&A