違いは何ですか:
(.+?)
そして
(.*?)
PHPpreg_match
正規表現でいつ使用すればいいですか?
ベストアンサー1
これらは量指定子と呼ばれます。
*
前の式の0個以上
+
前述の表現の1つ以上
デフォルトでは、量指定子は貪欲です。つまり、可能な限り多くの文字と一致します。
量指定子の後のは?
、この量指定子の動作を「非貪欲」に変更します。つまり、一致するものが可能な限り少なくなることを意味します。
貪欲/非貪欲の例
たとえば、文字列「アバブ「
a.*b
「abab」に一致します(preg_match_allは「abab」という1つの一致を返します)
while はa.*?b
先頭の「ab」のみに一致します (preg_match_all は 2 つの一致「ab」を返します)
Regexrなどオンラインで正規表現をテストすることができます。貪欲な例をここで見る