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

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

WBOY
リリース: 2016-08-08 09:31:29
オリジナル
1061 人が閲覧しました

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

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート