非貪欲マッチ

非貪欲マッチ(non-greedy matching)は、正規表現や文字列のパターンマッチングにおいて、できるだけ短い一致を見つけるアルゴリズムのことを指します。非貪欲マッチは、最小限の文字列を一致させることを目指し、貪欲マッチ(greedy matching)の対立概念です。

正規表現内で非貪欲マッチを適用するために、通常は次のように ? を使用します。この ? は、直前の正規表現パターンができるだけ少ない文字列をマッチさせることを示します。

以下は非貪欲マッチの例です。正規表現 <.*?> は、< で始まり、> で終わる最短の文字列をマッチさせます。

html
<p>これは<strong>重要な</strong>情報です。</p>

非貪欲マッチを使用すると、正規表現は以下のように動作し、最短の一致を見つけます。

  • <p> に一致
  • <strong> に一致
  • </strong> に一致
  • </p> に一致

非貪欲マッチは、特にHTMLタグやXML要素などのマークアップ言語を解析する際に便利です。非貪欲マッチを使用することで、最短のタグや要素を見つけ、正確なデータを取り出すことができます。

要するに、非貪欲マッチはできるだけ短い一致を見つけるためのアルゴリズムであり、正規表現内で ? を使用することで実珸されます。