No.1ベストアンサー
- 回答日時:
preg_replace_callback という似た関数を使うと、マッチした文字列をあらかじめ決まった別の文字に置換するのでなく、どう置換するかを関数で指定できます。
その関数内でifで判断して、元の文字列をreturnすれば置換されないし、異なる文字列をreturnすれば置換されます。サンプル:
文字列中の整数を探して、100未満なら100を足した物に置換。
$result = preg_replace_callback(
"|\\d+|",
function($m){
if($m[0] < 100){
return $m[0]+100;
}else{
return $m[0];
}
},
"2 50 150 300"
);
$result は、"102 150 150 300"になる。
回答ありがとうございます。
pref_replace_callbackを調べてみたのですがさっぱり書き換え方がわからず直すことができませんでした。
これまで、
「'/<img(.*?)src="(.*?)"(.*?)>/'」
この文字列にマッチしたものすべてを、$2のURLに飛ぶaタグで囲むよう書き換えしていました。
この処理を「$1または$3にclass="A"を含まない場合のみ処理する」ように変えたいのですが、どのように書けばいいのでしょうか…
可能でしたらご教示願いたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessで、『"A"以外の場合"--"に置き換える』という作業をしたいのですが、良い方法はありま 1 2022/06/07 19:30
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- PHP PHPの変わった閉じタグの必要性と意味を教えてください。 1 2022/08/28 15:15
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- 高校 変数置き換えにつきまして 6 2022/05/01 16:44
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
○分から○時間○分に変換
-
文字列の置換をCStringで(C++)
-
PHP・Wordpress preg_replaceを...
-
正規表現で<BR>の行を除外した...
-
VBSで"をエスケープする文字は?
-
ダブルクオーテーション
-
phpで正規表現を用いて、一定の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
ファイルから読み取った改行文...
-
VBAのコマンドボタンの文字列の...
-
メッセージボックスで1025文字...
-
JAVA System.out.println の ...
-
文字列中の両丸括弧を取り除くV...
-
FORTRANで作成したテキストファ...
-
VBAでCSVをExcelに取り込む時に...
-
Replace関数は文字数の制限ある...
-
PHPの正規表現の意味を教えて下...
-
Excel関数「COUNTIF」で”文字”...
-
文字列前後の「全角空白/半角空...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSで"をエスケープする文字は?
-
ダブルコーテーション(
-
近似した文字列を置換するエク...
-
文字列の置換をCStringで(C++)
-
PHP・Wordpress preg_replaceを...
-
○分から○時間○分に変換
-
c# string型の変数に、ダブルク...
-
【PHP】preg_replace() で正...
-
(から)までの文字列を削除したい
-
nl2brが効かないのですが・・・
-
文字列の括弧について(初心者)
-
PHPでjavascriptを書き出すとき...
-
空白文字のカンマへの変換について
-
php 正規表現で、\\マークを取...
-
不規則なaタグのスクレイピング...
-
ダブルクォーテーションが置換...
-
マクロ関数 #define の効果は何...
-
文字列のアスタリスク置換
-
htmlspecialchars関数でエスケ...
-
文字列内にある「指定した空タ...
おすすめ情報
preg_replaceの検索時に否定先読み表現(?!.*A)を使い、Aを含まない場合にのみタグを置き換えをするよう書き換えました。
不具合が出るかもしれませんが一旦解決ということで回答を締めます。
ありがとうございました。
ベストアンサーがまだ?選べないとなっているため、選べるようになるまで置いておきます。