2.14. Eliminowanie niepotrzebnych nawrotów

Problem

W poprzedniej recepturze wyjaśniliśmy różnice dzielące zachłanne kwantyfikatory od leniwych kwantyfikatorów oraz sposoby wykonywania nawrotów. Okazuje się jednak, że w pewnych sytuacjach nawracanie w ogóle nie jest potrzebne.

W wyrażeniu regularnym <\b\d+\b> użyliśmy zachłannego kwantyfikatora, a w wyrażeniu <\b\d+?\b> użyliśmy leniwego kwantyfikatora. Oba wyrażenia pasują do tego samego — liczby całkowitej. Dla tego samego tekstu wejściowego oba wyrażenia odnajdują te same dopasowania. W tym przypadku wszelkie nawroty są zbędne. Gdyby udało nam się opracować wyrażenie regularne wprost eliminujące te nawroty, ich przetwarzanie byłoby znacznie bardziej efektywne.

Rozwiązanie

  • \b\d++\b

    • Opcje wyrażenia ...

Get Wyrażenia regularne. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.