下記の通り、aタグ内からのみ
「<FONT style='background-color:yellow;'><b>」
と
「</b></FONT>」
を削除したいです。
<FONT style='background-color:yellow;'><b>▲</b>
<a href="■<FONT style='background-color:yellow;'><b>▲</b></FONT>●" target="_blank">
■<FONT style='background-color:yellow;'><b>▲</b>●</a>
↓
<FONT style='background-color:yellow;'><b>▲</b>
<a href="■▲●" target="_blank">
■<FONT style='background-color:yellow;'><b>▲</b>●</a>
■▲●は毎回内容が変わります。
■●は文字が無い場合もあります。
どのように記述すれば良いでしょうか。
参考になるサイトURlをご提示頂く回答でも構いません。
助けて下さい。
宜しくお願い致します。
※FONTはそっとしておいてください
No.3ベストアンサー
- 回答日時:
$strに変換前の文字列が格納れているとして
$result = preg_replace("/(.*)(<a href=\".*?)(<FONT style='background-color:yellow;'><b>)(.*?)(<\/b><\/FONT>)(.*target=\"_blank\">.*)/m","$1$2$4$6",$str);
で如何でしょうか。
$resultに変換結果が格納されます。
以下、試験したコードです。
-------------------------------------
<?php
$str = file_get_contents("test.html");
$result = preg_replace("/(.*)(<a href=\".*?)(<FONT style='background-color:yellow;'><b>)(.*?)(<\/b><\/FONT>)(.*target=\"_blank\">.*)/m","$1$2$4$6",$str);
print $result;
?>
------------------------------
test.htmlの内容
cat test.html
<FONT style='background-color:yellow;'><b>▲</b>
<a href="■<FONT style='background-color:yellow;'><b>▲</b></FONT>●" target="_blank">
■<FONT style='background-color:yellow;'><b>▲</b>●</a>
--------------------
実行結果
php goo1.php
<FONT style='background-color:yellow;'><b>▲</b>
<a href="■▲●" target="_blank">
■<FONT style='background-color:yellow;'><b>▲</b>●</a>
ありがとうございます!
希望通りに結果になりました。
たった1行で出来るんですね!
すごいです。
正規表現を覚えたら、いかに便利か改めて感じました。
頑張って勉強してゆきたいと思います。
勉強になりました。
ありがとうございました。
No.2
- 回答日時:
回答者No1です。
PHPの話だったのですね。見落としていました。すみません。
PHPであれば、
preg_replace($pattern, $replacement, $string);
を使って、回答No1の検索・置換条件を設定します。
この場合、注意する点は
<や"などの前、要所要所にエスケープ「\」を入れなければならないところです。
こちらではすぐには検証できないのでヒントだけですみません。
置換$replacementではPHPの場合、$1$2$3という書き方になります。
こちらの設定でも適宜エスケープが必要になるかと。
No.1
- 回答日時:
完璧ではないかもしれませんが、素直にそのまま書くと
検索
<a href="(.*?)<FONT style='background-color:yellow;'><b>(.*?)</b></FONT>(.*?)" target="_blank">
置換
<a href="\1\2\3" target="_blank">
検索条件の●▲■の部分に
任意の文字列 .*? を置きます。
後でその文字を代入するためグループとして()で囲っておきます。
置換の\1は検索でグループとして()で括った1個目という意味です。
使うソフトによって、書き方が違うかもしれませんので、
ダメだったら調べてみてください。($1とする場合もあります)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS HTMLで特定の文字だけ色を変えたいのですが、指定した色と違う色が反映してしまいます。 下記、「前」 5 2023/06/27 12:08
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS html cssのmargin 5 2022/12/03 11:04
- オープンソース cssで中央寄せ 1 2023/05/19 06:25
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS スマホ表示用のwebページ、style.cssでは表の中の文字 font-size は指定できない? 1 2023/03/27 18:57
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
index.phpに入るには、どうすれ...
-
メールフォームのタイトルが文...
-
phpでcookieがうまく保存されない
-
php 完了画面の送信メールのコ...
-
PHPSpreadsheetを使って関数を...
-
入力フォームの空白や改行を制...
-
awsにApacheとPHPを入れて、何...
-
これの対応OSを教えて下さい。p...
-
ワードプレスサイト PHP8.0.25...
-
csvファイルについて教えて下さ...
-
PHP一覧表示した項目にリンクを...
-
PHPのセッション有効期限について
-
phpのメールフォームの完了画面...
-
PHPで入力フォームでデータを確...
-
PHP MySql 画像を取得
-
なんでブラウザでPHPを動かすた...
-
reuterの記事をbeautiful.soup....
-
SFTPなどは使わないホームペー...
-
掲示板のセキュリティについて...
-
php 確認表示画面で値をSESSION...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpでcookieがうまく保存されない
-
なんでブラウザでPHPを動かすた...
-
PHP8を使うと、大量のWarningが...
-
ワードプレスサイト PHP8.0.25...
-
PHPSpreadsheetを使って関数を...
-
php 入力画面から確認表示画面...
-
PHPのエラーの解消法について教...
-
掲示板のセキュリティについて...
-
php 完了画面の送信メールのコ...
-
PHPのセッション有効期限について
-
掲示板を作成しておりアップロ...
-
PHPでCookieを使った訪問回数に...
-
PHPで画像の渡しが上手く行きま...
-
重複を防ぐ記述について教えて...
-
php 確認表示画面で値をSESSION...
-
ファイルアップロードに関して...
-
メールフォームのタイトルが文...
-
フォームで戻った際に入力済み...
-
PHPで訪問回数を表示するカウン...
-
アップロード画像数でCSSを分け...
おすすめ情報