Keresés

Új hozzászólás Aktív témák

  • Karma

    félisten

    válasz ubid #5750 üzenetére

    A greedy kifejezés a lehető legtöbb karaktert próbálja illeszteni, azaz ha több lehetőség is van, a leghosszabbat fogja választani. A lazy ezzel szemben a rövidebbet.

    Mutatok egy példát, mert magyarázni nem igazán tudok ezen a héten:

    Bemenet Regex Eredmény

    almabeka kecskebeka ==> (.*)beka ==> 1 match: "almabeka kecskebeka"
    almabeka kecskebeka ==> (.*?)beka ==> 2 match: "almabeka" és " kecskebeka"

    Az első a greedy, a második a lazy kifejezés. Aláhúzással jelöltem, hogy a zárójel mit fogott be a zárójel groupba. Fontos, hogy a kecske előtti szóköz is benne van! Csak azt nem tudom megformázni valamiért.

    Látszik, hogy mivel a bemeneten a "beka" szöveg kétszer is szerepel, a greedy a végét vette figyelembe, az összes többi köztes karaktert (benne az első békát) behajította a zárójelbe. A lazy meg szétvágta és különvette a két illeszkedő mintát.

    Egyébként a RegexPal a barátod, ha regexekkel foglalkozol: egy kísérletezésre alkalmas terület és még egy mini összefoglaló is a szintaxisról.

Új hozzászólás Aktív témák