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;
No.2
- 回答日時:
> ところで「()」のグループ化で「このグループ以外」って指定は
> できないんでしたっけ?
>
> [^(A|FONT|B|BR)]
> みたいな…。
無い。
「このグループ以外」と言っても、あなたは暗黙に英数字からなる単語の
うち、と考えているわけですから、それも教えてあげないと。
でも、私は、それを一気に書ける正規表現を知りません。
No.3
- 回答日時:
> 「教えてあげないと」の意味がよくつかめません。
[^(A|FONT|B|BR)]
の ^ に期待していることは、
<\/?([a-zA-Z]+).*>
の \1 に相当するところのうちの A|FONT|B|BR 以外ってこと
ですもんね。
正規表現で言うと、単純に A|FONT|B|BR 以外って言っちゃうと
長さ0の文字列や空白も、それに相当しますから。
>長さ0の文字列や空白も、それに相当しますから。
そうですよね。自分でもあとから気付きました。ハズかしいです。^^;
最終的にはこんな感じになりました。
$oktag = 'A|B|FONT|BR';
$hoe =~ s/\<(?!\/?($oktag)( [^>]*)?>)([^>]*)>/<$3>/oisg;
実際は value="<br>" とかコメントタグが入ってくると無効になって
しまいますがとりあえずはこれでいいかなと。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Makefileのechoの展開について 2 2022/07/26 07:35
- その他(プログラミング・Web制作) zshの例外処理 1 2022/06/02 16:36
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS CSSが上手く反映されないみたいです 2 2022/11/21 16:19
- HTML・CSS 【CSS】特定のリンクを含むaタグを指定できるかどうか? 3 2022/10/15 02:45
- HTML・CSS FC2カートのテンプレートでの商品表示について 1 2023/03/02 18:05
- HTML・CSS PrettierのHTMLの記述変更 linkタグ 1 2022/06/23 04:06
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現 秀丸エディタ 行頭か...
-
[正規表現] 数字範囲をヒット...
-
vbaの正規表現で、マッチした一...
-
正規表現で囲まれた部分の文字列
-
メールアドレスの正規表現について
-
正規表現でAND検索はできる...
-
正規表現でシングルクォーテー...
-
C言語にパターンマッチってない...
-
sedで正規表現の後方参照を使い...
-
wordの何も書かれていない2ペー...
-
PS4コントローラーをPCでゲーム...
-
エクセルでアルファベットか数...
-
Chr(13)とChr(10)の違いは?
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
EBCDIC⇒SJIS変換の方法
-
エクセルで文字列の最大値を抽...
-
エクセルで文字列をtxtファイル...
-
Excelで指数表現しないようにす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現 秀丸エディタ 行頭か...
-
正規表現でAND検索はできる...
-
vbaの正規表現で、マッチした一...
-
文章中全ての半角カッコ ( の...
-
メールアドレスの正規表現について
-
正規表現です。括弧内にある複...
-
Perl 数値にスラッシュを入れる...
-
[正規表現] 数字範囲をヒット...
-
正規表現でシングルクォーテー...
-
[VBS] テキストファイルから任...
-
C言語にパターンマッチってない...
-
MFCで正規表現
-
Mで始まりuで終わる文字列
-
正規表現でカウントアップ(?)す...
-
C言語のコメントを「正規表現」...
-
grepの正規表現での最短マッチ...
-
正規表現で囲まれた部分の文字列
-
第二水準漢字が含まれるか?
-
特定タグ以外を変換したい
-
1行~複数行をまとめる正規表現
おすすめ情報