ホームページ  >  記事  >  バックエンド開発  >  preg_match_all 正規表現の貪欲モードと非貪欲モード

preg_match_all 正規表現の貪欲モードと非貪欲モード

巴扎黑
巴扎黑オリジナル
2016-11-07 16:39:111972ブラウズ

貪欲なマッチング: 正規表現は一般に最大長まで一致する傾向があり、これがいわゆる貪欲なマッチングです。

非貪欲マッチング: 可能な限り少数の一致文字と結果を一致させます。

それでは、それを実践してみましょう

php preg_match_all の行数を使用します

次に、文字列コンテンツ内の 2 つのリンクを取り出す必要があります

Php コード

< ?php

2. $content='

これは明らかに私たちが望んでいることではありません。

その後、$play_pattern にもう 1 文字追加する限り、必要な情報を一致させることができます

Php コード

1。 $play_pattern = '/

結果は

Array
(
[0] => 配列
(
[0] => BD
[1] => DVD
)


[1] => 配列
(
[0] => /videos / 68759vod-play-id-68759-sid-0-pid-1.html
[1] => /videos/68759vod-play-id-68759-sid-0-pid-0.html
)


[ 2] => Array
(
[0] => BD
[1] => DVD
)


)

貪欲モードと非貪欲モードの違いは非常に大きいです。

このようなエラーは、HTMLでリストを正規化するときによく発生します。 preg_match_all を使用すると文字列全体が一致しますが、部分文字列の一致は無視されます。不正確な結果につながります。


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