私はプログラミングに c と c# を使用していましたが、サードパーティの正規表現ライブラリを使用してリンク パターンを識別しています。しかし、昨日、何らかの理由で、代わりに php を使用するように依頼されました。私はphpの正規表現に慣れていませんが、試してみましたが、期待どおりの結果が得られませんでした。次の形式の画像 src のリンクを抽出して置き換える必要があります。
<img src="/a/b/c/d/binary/capture.php?id=main:slave:demo.jpg"/>
src のパスのみが必要ですが、引用符は double または single である可能性があり、id はケースごとに異なる可能性があります (ここでは main:slave:demo.jpg です)。
次のコードを試します
$searchfor = '/src="(.*?)binary\/capture.php?id=(.+?)"/';
$matches = array();
while ( preg_match($searchfor, $stringtoreplace, $matches) == 1 ) {
// here if mataches found, replace the source text and search again
$stringtoreplace= str_replace($matches, 'whatever', $stringtoreplace);
}
しかし、それは機能しません。上記のコードで見逃しているものや間違いはありますか?
より具体的には、srcを次のように指定するイメージタグがあるとしましょう
<img src="ANY_THING/binary/capture.php?id=main:slave:demo.jpg"/>
ここで、ANY_THING は何でもかまいません。"/binary/capture.php?id=" はすべての場合に固定されます。"id=" の後の文字列はパターン "main:slave:demo.jpg" であり、コロンの前の文字列は次のようになります。場合によっては、jpeg の名前もさまざまです。私はそれが次のように置き換えられることを期待します
<img src="/main/slave/demo.jpg"/>
特定の限られた時間にのみ php スクリプトを変更する権利があるため、変更を行う前にコードをデバッグしたいと考えています。ありがとう。