-PR-
解決済み

特定タグ以外を変換したい

  • 困ってます
  • 質問No.59673
  • 閲覧数161
  • ありがとう数5
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 69% (29/42)

HTML文書から特定のタグ以外を変換しようとしているのですが、
[^]とiがヘンな風に作用しているのか上手くいきません。^^;
わかる方いましたら教えてください。

$foo = '<a href="bar">hoehoe</a><b>auau</b>';
$foo =~ s/<(\/[^a] *.*?)>/##$1##/isg;

■希望
<a href="bar">hoehoe</a>##b##auau##/b##
■現実
<a href="bar">hoehoe##/a####b##auau##/b##


以下のようにやると効率的ではありませんがうまくいきます。

$foo =~ s/[<>]/##/gs;
$foo =~ s/##(\/*a *[^#]*)##/<$1>/igs;
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル14

ベストアンサー率 50% (1122/2211)

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

かな?
お礼コメント
dany

お礼率 69% (29/42)

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

[^(A|FONT|B|BR)]
みたいな…。
投稿日時 - 2001-04-05 11:42:44
関連するQ&A
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.3
レベル14

ベストアンサー率 50% (1122/2211)

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

[^(A|FONT|B|BR)]

の ^ に期待していることは、

<\/?([a-zA-Z]+).*>

の \1 に相当するところのうちの A|FONT|B|BR 以外ってこと
ですもんね。

正規表現で言うと、単純に A|FONT|B|BR 以外って言っちゃうと
長さ0の文字列や空白も、それに相当しますから。
お礼コメント
dany

お礼率 69% (29/42)

>長さ0の文字列や空白も、それに相当しますから。
そうですよね。自分でもあとから気付きました。ハズかしいです。^^;

最終的にはこんな感じになりました。

$oktag = 'A|B|FONT|BR';
$hoe =~ s/\<(?!\/?($oktag)( [^>]*)?>)([^>]*)>/&lt;$3&gt;/oisg;

実際は value="<br>" とかコメントタグが入ってくると無効になって
しまいますがとりあえずはこれでいいかなと。

ありがとうございました。
投稿日時 - 2001-04-06 19:46:51


  • 回答No.2
レベル14

ベストアンサー率 50% (1122/2211)

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

無い。

「このグループ以外」と言っても、あなたは暗黙に英数字からなる単語の
うち、と考えているわけですから、それも教えてあげないと。

でも、私は、それを一気に書ける正規表現を知りません。
お礼コメント
dany

お礼率 69% (29/42)

やはりそうですか。ありがとうございました。
「教えてあげないと」の意味がよくつかめません。
もしよければ補足などお願いします。
投稿日時 - 2001-04-05 18:36:27
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ