Załóżmy, że szukam linków kotwiczących na stronie internetowej. Wyrażenie, które działa:Moje wyrażenie wyrażenie jest zarówno leniwy i chciwy. Czemu?
"\<a\s+.*?\>"
Dodajemy jednak komplikację. Załóżmy, że chcę tylko linki otaczające określony tekst, na przykład słowo "następny". Normalnie, to myślę, że wszystko, co musiałem zrobić, to:
"\<a\s+.*?\>next"
Ale uważam, że teraz, jeśli istnieją 3 znaczniki kotwicy na stronie, a trzeci ma „obok” po nim, że poszukiwania regex znajduje ogromny ciąg znaków rozciągający się od pierwszego znacznika zakotwiczenia i rozciągający się do trzeciego znacznika zakotwiczenia. Ma to sens, jeśli kropka-gwiazdka-questionmark znajduje wszystkie znaki, dopóki nie natknie się na "> następny". Ale tego nie chcę. Chcę znaleźć wszystkie postacie, aż napotka ">", a następnie dodatkowe ograniczenie powinno nastąpić zaraz po ">" powinno być "następne".
Jak to działa?