Fast Matching of Regular Patterns with Synchronizing Counting

Loading...
Thumbnail Image
Date
2023-04-21
Authors
Holík, Lukáš
Síč, Juraj
Holíková, Lenka
Vojnar, Tomáš
Advisor
Referee
Mark
Journal Title
Journal ISSN
Volume Title
Publisher
Springer Verlag
Altmetrics
Abstract
Fast matching of regular expressions with bounded repetition, aka counting, such as (){,}, i.e., matching linear in the length of the text and independent of the repetition bounds, has been an open problem for at least two decades. We show that, for a wide class of regular expressions with counting, which we call synchronizing, fast matching is possible. We empirically show that the class covers nearly all counting used in usual applications of regex matching. This complexity result is based on an improvement and analysis of a recent matching algorithm that compiles regexes to deterministic counting-set automata (automata with registers that hold sets of numbers).
Rychlé porovnávání regulárních výrazů s omezeným opakováním, tzv. počítání, jako je (){,}, tj. porovnávání lineární v délce textu a nezávislé na hranicích opakování, je otevřeným problémem již nejméně dvě desetiletí. Ukážeme, že pro širokou třídu regulárních výrazů s počítáním, které nazýváme synchronizované, je rychlé porovnávání možné. Empiricky ukazujeme, že tato třída pokrývá téměř všechna počítání používaná v obvyklých aplikacích porovnávání regexů. Tento výsledek složitosti je založen na vylepšení a analýze nedávného párovacího algoritmu, který sestavuje regexy do deterministických počítacích automatů (automaty s registry, které uchovávají množiny čísel).
Description
Citation
Lecture Notes in Computer Science. 2023, vol. 13992, issue 1, p. 392-412.
https://link.springer.com/chapter/10.1007/978-3-031-30829-1_19
Document type
Peer-reviewed
Document version
Published version
Date of access to the full text
Language of document
en
Study field
Comittee
Date of acceptance
Defence
Result of defence
Document licence
Creative Commons Attribution 4.0 International
http://creativecommons.org/licenses/by/4.0/
Citace PRO