正規表現プラスとスターの違いは?[重複] 質問する

正規表現プラスとスターの違いは?[重複] 質問する

違いは何ですか:

(.+?)

そして

(.*?)

PHPpreg_match正規表現でいつ使用すればいいですか?

ベストアンサー1

これらは量指定子と呼ばれます。

*前の式の0個以上

+前述の表現の1つ以上

デフォルトでは、量指定子は貪欲です。つまり、可能な限り多くの文字と一致します。

量指定子の後のは?、この量指定子の動作を「非貪欲」に変更します。つまり、一致するものが可能な限り少なくなることを意味します。

貪欲/非貪欲の例

たとえば、文字列「アバブ

a.*b「abab」に一致します(preg_match_allは「abab」という1つの一致を返します)

while はa.*?b先頭の「ab」のみに一致します (preg_match_all は 2 つの一致「ab」を返します)

Regexrなどオンラインで正規表現をテストすることができます。貪欲な例をここで見る

おすすめ記事