0

私は正規表現を使用しており、次のコード ブロックがあります。

 $find = "/jsfile\.js?[0-9]*</";
 $switch = 'jsfile.js?version=' . $version . '<';
 $replace = preg_replace($find, $switch, $data);

私の問題は、JavaScript ファイルに?version=<number>. ここで、このスクリプトを再度実行すると、スクリプトが壊れます。

正規表現を使用して、$find文字列に存在する場合と存在し?version=ない場合があると言う方法はありますか?

4

4 に答える 4

0

代わりに次のパターンを使用できます。

$find = '~jsfile\.js\?\K(?>version=)?\d++(?=<)~';
$switch = 'version='. $version;
$replace = preg_replace($find, $switch, $data);
于 2013-05-10T19:29:37.463 に答える