<?
$text ="u&ampfayv&in&e6&rna6uinv";
/////////////////////////////
print $text."<br>";
print "<XMP>".$text."</XMP><br>";
///////////////////////////////正規表現で置換
$text = preg_replace('/&[^amp]/', "■", $text);
//////////////////////////////
print $text."<br>";
print "<XMP>".$text."</XMP><br>";
//////////////////////////////
print "u&ampfayv&in&e6■rna6uinv";
print "<XMP>u&ampfayv&in&e6■rna6uinv</XMP>";
?>
$textの文字列の中にある & を ■ に変えたいです。
amp という文字列の前についている & は ■ に置換してはいけません。
&amp という文字列の前についている & も ■ に置換してはいけません。
現在の正規表現では r が消えてしまっています。
ブラウザで見た場合に結果が u&fayv&in&e6■rna6uinv になるようにして下さい。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
否定的 先読み 正規表現 などのキーワードでGoogleなどで検索すると、サンプルが出てくると思います。
(例えば、参考URLのページ。)参考URL:http://www4.ocn.ne.jp/~kaerume/k2e/regex_3.html
No.2
- 回答日時:
$text = preg_replace("/&(?!amp)/","■",$text);
結果
u&ampfayv&in&e6■rna6uinv
&ampを&にしていませんので指定する結果とは異なります。
どんなことしてるかわかりませんが&ampを見る限り
エンコードの順序等を見直したほうがいいんじゃないでしょうか
No.3
- 回答日時:
いまいち状況がわかりませんが、こんなことなんでしょうか?
<?PHP
$text ="u&ampfayv&in&e6&rna6uinv";
print $text."<br>";
$text = preg_replace(Array('/&([^amp])/','/&/'), Array('■$1','&'), $text);
print $text."<br>";
?>
No.4
- 回答日時:
正規表現の解説書を読み直したほうがよろしいかと。
[] の中にあるのは文字列として扱われることはありませんから、
&[^amp]
とかいても、& のあとに amp が続かないものという意味にはなりません。
#2の方の回答にあるように、否定先読みを使うべきでしょう。
使わないでも書けますけど面倒ですから。
ところで
> u&ampfayv&in&e6&rna6uinv
& とセミコロンがちゃんとついていないとアンパサンドには
ならないような気がしますけどそれはよいのでしょうか?
一部には余計な気を回してくれるブラウザはあるかもしれませんが、
Firefoxではだめでしたよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- その他(コンピューター・テクノロジー) 正規表現の置換で一部の文字列をそのまま残したい 2 2022/05/03 19:19
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- その他(プログラミング・Web制作) Pythonについての質問です。 初心者ほやほやなのでお手柔らかにお願いします。 今手引きにそって入 2 2022/09/22 21:56
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c# string型の変数に、ダブルク...
-
(から)までの文字列を削除したい
-
【php】二進数をフラグとして扱...
-
独自タグに囲まれた文字列の変換
-
PHPで「,」を「, 」へ置換した...
-
文字列の置換をCStringで(C++)
-
VBSで"をエスケープする文字は?
-
mcryptで英数字(12未満)のみに...
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
テキストファイルから改行コー...
-
エスケープ文字の復帰(¥r)と...
-
文字の入力で横バー上段、中断...
-
グレープシティのSPREAD...
-
エクセルのCOUNTIFが正しくカウ...
-
UTF8メールがLotus Notesで文字...
-
jsp 改行コードで改行させて表...
-
ExcelVBAでメールを作成してメ...
-
C++で空Enterの入力を判...
-
csobjというタグについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルコーテーション(
-
VBSで"をエスケープする文字は?
-
PHP・Wordpress preg_replaceを...
-
文字列の置換をCStringで(C++)
-
○分から○時間○分に変換
-
文字列の括弧について(初心者)
-
近似した文字列を置換するエク...
-
PHPの¥
-
ダブルクォーテーションが置換...
-
php 正規表現で、\\マークを取...
-
(から)までの文字列を削除したい
-
文字列のアスタリスク置換
-
htmlspecialchars関数でエスケ...
-
nl2brが効かないのですが・・・
-
PHPでCSVを出力する際のセルに...
-
c# string型の変数に、ダブルク...
-
正規表現で<BR>の行を除外した...
-
ダブル、シングルクォーテーシ...
-
空白文字のカンマへの変換について
-
【PHP】preg_replace() で正...
おすすめ情報