Wenn ich eine unbekannte Menge an regulären Ausdrücken habe (Null oder mehr und hoffentlich weniger als ein paar Tausend), was ist eine effiziente Möglichkeit, nach einer Zeichenfolge zu suchen?Eine Sammlung von Regexen effizient durchsuchen
Welche Arten von Containern, Algorithmen und/oder Datenstrukturen sollte ich verwenden? Ist das anders, wenn ich die einzige übereinstimmende Regex finden möchte, als wenn ich von allen Regex-Treffern möchte? Unterscheiden sich diese von nur wollen wissen, wie viele abgestimmt?
Lassen Sie mich das auf eine andere Art sagen, nehmen wir an, ich habe einen Benutzer, der willkürliche Zeichenfolgen eingibt, und ich habe einige Behälter von Regexes. Ich kann den Container so gestalten, wie ich es möchte, und die Suche nach jedem beliebigen Weg durchführen. Was soll ich tun, wenn ich eine Liste aller Regexes haben möchte, die mit den Benutzereingaben aus dieser Sammlung übereinstimmen? Wie würde ich das tun? Was, wenn ich nur wissen möchte, wie viele Matches existieren? Was, wenn ich nur die Einzigartigkeit eines Spiels versichern wollte?
Kombinieren Sie sie zu einem Ausdruck und fangen Sie die Originalausdrücke nach Bedarf ein. – greybeard
Sind das (mathematisch gesprochen) reguläre Ausdrücke, oder sind sie zufällige Mengen von Turing-vollständigen Übereinstimmungsfunktionen, wie bei den meisten Regex-Bibliotheken? Und sind sie genau oder Teilstrings? – rici
@rici PCRE/ECMAScript Regexes und Exact-Übereinstimmungen. Aber ich bin neugierig auf Antworten zu allen Variationen. – Sqeaky