ホームページ >バックエンド開発 >PHPチュートリアル >正規表現一致による重複項目の問題について

正規表現一致による重複項目の問題について

WBOY
WBOYオリジナル
2016-08-08 09:31:291055ブラウズ

私はこのような状況に遭遇しましたが、一致するたびに重複の先頭が一致しました:

$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チュートリアルに興味のある友人の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。