次の正規表現パターンを使用して値を取得しています[URL=http://www.google.com]Google[/URL]
$pattern = '/\[\s*URL(.+?)?\s*\](.+?)\[\s*\/URL\s*\]/i';
正常に動作しますが、1 つしかない場合のみです[URL]...[/URL]
。複数の文字列がある場合[URL]....[/URL]
、間違った値が返されます
たとえば、次の文字列の場合
$string = '[URL=http://www.google.com]Google[/URL] another website [URL]www.youtube.com[/URL]';
最初の一致を として出力し]http://www.freshupnow.com[/URL
、残りの URL タグを残します。正規表現パターンで問題を見つけるために多くのことを試みましたが、失敗しました。誰でも考えがありますか?