ホームページ  >  記事  >  バックエンド開発  >  正規表現での最短一致パターンの使用

正規表現での最短一致パターンの使用

小云云
小云云オリジナル
2017-12-05 14:19:174180ブラウズ

テキストがあり、最長のテキストではなく、可能な限り短いテキストのみを照合したいとします。この記事では主に、正規表現における最短一致パターンの使用法に関する関連情報を紹介します。

はじめに

最近、正規表現を使ってWebページから何かを取得したいと考えました。内容は複雑ではありませんでしたが、多くの問題がありました。以下で言うことはあまりありませんが、詳細な紹介を見てみましょう:

4a249f0d628e2318394fd9b75b4636b1hello world473f0a7621bec819994bb5020d29372a

の h1 の開始タグと終了タグを一致させるなど、タグの先頭と末尾を一致させるために正規表現を使用する場合、多くの人は次のように書くかもしれません。こんな感じ


/<.*h1>/g


でも本当にこれでいいの?

* 一致する文字は前の文字の 0 個以上と一致し、貪欲一致であるため

、次の結果が得られます。


明らかにこれは私たちが望んでいることではないので、貪欲なマッチングを最小限のマッチングに変更する方法


/<.*?h1>/g


以下に示すように、上記の記述で十分です。実際、原理は非常に単純であるはずです。なぜなら、 ? も貪欲一致であり、0 から 1 にのみ一致するからです

したがって、最初の一致に一致すると終了し、* が複数の貪欲一致に一致することを防ぎます。

上記の内容は、正規表現における最短一致パターンの使い方です。皆様のお役に立てれば幸いです。


関連する推奨事項:

PHP正規表現コレクション

PHP正規表現でよく使われる関数の詳しい説明

PHPフォームでよく使われる正規表現のまとめ

以上が正規表現での最短一致パターンの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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