
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ランキング
-
冗長コードのfunction化と汎用化
-
デザインとテキストを分離しま...
-
nl2brが効かないのですが・・・
-
ダブルコーテーション(
-
VBAのコマンドボタンの文字列の...
-
メッセージボックスで1025文字...
-
ソースコードの1行が長いとき...
-
vb.netでのリッチテキストボッ...
-
エクセルのCOUNTIFが正しくカウ...
-
文字の入力で横バー上段、中断...
-
エスケープ文字の復帰(¥r)と...
-
PHP テキストファイルの一部分...
-
awkの BEGIN{RS=""} で空行を削...
-
テキストボックス行の桁数を制...
-
プログラムコードを入力する場...
-
PHPで変数から1行目だけを取得...
-
グレープシティのSPREAD...
-
JAVA Spring 改行コードを含む...
-
改行について
-
秀丸の正規表現で複数行にわた...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルコーテーション(
-
文字列の置換をCStringで(C++)
-
文字列の括弧について(初心者)
-
c# string型の変数に、ダブルク...
-
VBSで"をエスケープする文字は?
-
○分から○時間○分に変換
-
入力文字に\\マークが入ってい...
-
mcryptで英数字(12未満)のみに...
-
マクロ関数 #define の効果は何...
-
正規表現
-
VB.NET 文字コード
-
PHPでCSVを出力する際のセルに...
-
PHPでjavascriptを書き出すとき...
-
ヒットする初回のみ置換する方法
-
文字列のアスタリスク置換
-
php 正規表現で、\\マークを取...
-
正規表現について
-
PHP VS Java (パフォーマン...
-
sedでの最短一致の書き方
-
正規表現での記述方法
おすすめ情報
preg_replaceの検索時に否定先読み表現(?!.*A)を使い、Aを含まない場合にのみタグを置き換えをするよう書き換えました。
不具合が出るかもしれませんが一旦解決ということで回答を締めます。
ありがとうございました。
ベストアンサーがまだ?選べないとなっているため、選べるようになるまで置いておきます。