Regex: różnica pomiędzy plusem (.+?), a gwiazdką (.*?)? PHP

Jaka jest różnica pomiędzy:

(.+?)

a

(.*?)

kiedy używam go w wyrażeniu regex preg_match ?

1 odpowiedź

Są to kwantyfikatory, tutaj podrzucam trochę informacji:

http://blog.kamilbrenk.pl/optymalizacja-wyrazen-regularnych/

https://www.forumweb.pl/php/pcre-kwantyfikator-zachlanny-i-na-odwrot,56460

    • 0 lub więcej z poprzedniego wyrażenia
    • 1 lub więcej z poprzedniego wyrażenia

Domyślnie kwantyfikator jest zachłanny, co oznacza, że pasuje do jak największej liczby znaków.

Po „?” zmianie zachowania przez kwantyfikator, aby ten kwantyfikator stał się „niezachłanny”, oznacza, że będzie pasować w najmniejszym stopniu.

Na przykład w ciągu „abab”

a. * b dopasuje „abab” (preg_match_all zwróci jedno dopasowanie, „abab”)

podczas gdy a. *? b dopasuje tylko początkowe „ab” (preg_match_all zwróci dwa dopasowania, „ab”)

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.