ホームページ >バックエンド開発 >PHPチュートリアル >正規表現一致による重複項目の問題について
私はこのような状況に遭遇しましたが、一致するたびに重複の先頭が一致しました:
$file = 'push_1113_20150105000052430.txt'; $file2 = 'confirm_push_1114_20150105000052430.txt'; preg_match('/^(get|push|admin).*.txt/', $file, $rs); preg_match('/^confirm.*.txt/', $file2, $rs2); echo '<pre class="brush:php;toolbar:false">';print_r($rs); echo '<pre class="brush:php;toolbar:false">';print_r($rs2); exit;
結果は次のとおりです:
Array ( [0] => push_1113_20150105000052430.txt [1] => push ) <pre class="brush:php;toolbar:false">Array ( [0] => confirm_push_1114_20150105000052430.txt )
最初の結果には 2 つのプッシュに重複一致があることがわかります。続いてるの? ?
どうなったのかわかりませんが、いろいろ試した結果、次のように変更されました:
preg_match('/^[get|push|admin].*.txt/', $file, $rs);
つまり、括弧を角括弧に変更した結果は次のようになります:
Array ( [0] => push_1113_20150105000052430.txt )
理由は次のとおりです。詳細な調査が行われており、現時点では不明ですが、() と [] の違いが原因であると考えられます。
以上、正規表現マッチングによる重複項目の問題について内容も含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。