
HTMLのタグを別のタグに置換しようとしています。
HTML中に複数ある<a></a>タグ
<a href="/w/index.php?title=%E3%83%95%E3%82%B0%E3%83%AA%E3%83%BC%E5%B7%9D&action=edit" class="new" title="フグリー川">フグリー川</a>など
という文字列の<a></a>タグを<span style="color:#ff0000;"></span>に置換したいのです。
$pattern = '|<a href="/w/index\.php\?title=.*?">(.*)</a>|';
$replace = '<span style="color:#ff0000 ;">\\1</span>';
preg_replace( $pattern, $replace, $html, -1, $count);
print $count;
$countの表示は 1 でした。上記のような<a>タグは複数あるのに。
上記のような<a>タグをマッチさせるにはどうパターン表記したらいいでしょうか?
PHP5.2.4です。
ご教授お願いします。
No.4ベストアンサー
- 回答日時:
> やってみると結果は変化なかったです。
改めて質問文にあるスクリプトを見て気になったのですが、
PHP: preg_replace - Manual
http://www.php.net/preg_replace
> preg_replace( $pattern, $replace, $html, -1, $count);
replace の結果は関数の戻り値として得られるので、
このような呼び出しをして $htmlを参照しても
置換は反映されていません。
$result = preg_replace( $pattern, $replace, $html, -1, $count);
とかして、$resultの結果を見たらどうなってますか?
No.3
- 回答日時:
マッチの数はたぶん期待通りだったんですよね?
であれば、$replace にセットする値の中の \\1 を \1 に変えてみてください。
> '|<a[^>]+>([^</a>]*)</a>|'
たぶん文字クラスの仕様を誤解されてます。>#2
はい、マッチ数は期待どうりになりました。
いろいろ調べてsakusaker7の仰るところにたどりついたのですが、やってみると結果は変化なかったです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リッチテキストエディターでの...
-
リンクを消したいのですが。。。
-
VBAのコマンドボタンの文字列の...
-
PPT ファイルの文字カウント=...
-
文字化け変換方法
-
数値をASCII文字にする方法につ...
-
ファイルから読み取った改行文...
-
ソースコードの1行が長いとき...
-
C言語の標準入力で改行しない方法
-
fscanfについて
-
全角英数文字が嫌われる理由を...
-
Replace関数は文字数の制限ある...
-
改行について
-
Excel VBS、ADODB.Streamで改行
-
VBAを使ってHTMLソースから特定...
-
ASCII文字列をEUCなどに変換し...
-
改行コード2種類を混在させたい
-
エスケープ文字の復帰(¥r)と...
-
C++で空Enterの入力を判...
-
正規表現に関して
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現の否定先読みについて
-
PHP テキストファイルの一部分...
-
実行結果で画像が出力されない...
-
【PHP】正規表現でHTMLを置換し...
-
とても初歩的な質問で申し訳な...
-
htmlソースの中を検索して、
-
携帯用HPの作成で
-
firefoxで、特定の文字列を含む...
-
eclipseより、タスク・タグの使...
-
ASP.NET(C#)とhtmlの#include
-
PHP4→5にアップグレードしたら...
-
PHP Webページのタイトルを取得...
-
CGIファイルの書き換えについて...
-
htmlタグ間の特定文字置換
-
echoで画像を呼び出すことがで...
-
自動置き換えタグをHTML形式にする
-
ヒアドキュメント
-
URLの連続アクセス
-
phpの正規表現でstyle="●●"を削...
-
php正規表現 相対パス→絶対パス
おすすめ情報