Regulärer Ausdruck zum Finden eines regulären Ausdrucks?

8

Hat jemand Code zum Finden einer Datei, die einen regulären Ausdruck enthält? Ich nehme an, Sie könnten zwei verschiedene Geschmacksrichtungen haben, einen für BREs und einen für EREs.

Sie würden denken, dass eine Art Test-Suite so etwas wie einen isRegex () Test haben würde. Kann jemand Code haben? Auf der Suche nach etwas natürlichem.

Ich sehe, dass hier hier diskutiert wurde, aber keine praktische gesehen hat Antworten. Wenn ich nach einer Datei grep suchen möchte, die einen regulären Ausdruck enthält, vielleicht begrenzt durch das typische //, wie würde ich das tun?

    
tkotitan 23.03.2009, 20:28
quelle

3 Antworten

18

Reguläre Ausdrücke sind selbst keine reguläre Sprache . Der Hinweis ist, dass sie Klammern und eckige Klammern enthalten und dass diese ausgeglichen sein müssen.

Ein regulärer Ausdruck selbst kann durch eine kontextfreie Grammatik beschrieben und mit einem Recursive-Descent-Parser .

    
Bill Karwin 23.03.2009, 20:37
quelle
3

Über

hinaus %Vor%

Sie schauen auf eine wirklich engagierte Übung.

    
chaos 23.03.2009 20:33
quelle
1

Wenn Sie speziell nach Dateien suchen, die nur oder überwiegend reguläre Ausdrücke enthalten, sollten Statistiken Ihnen sagen, dass eine bestimmte Datei mehr von dieser Syntax enthält als andere. Sie könnten also eine Reihe von Indikatoren definieren und ihre Punktzahlen zu einer Metrik kombinieren, die eine Datei mit der Wahrscheinlichkeit bewertet, dass sie von Interesse ist. Wähle einen Cutoff und lass ihn los. Einige Indikatoren:

  • Existenz von mehr als einem [0-9], [A-Z], + usw.
  • Existenz von / foo /
  • Keine Standardcodedatei
  • Weniger komprimierbar (fragwürdig, ich weiß, aber die Kompaktheit der Regex-Grammatik wäre intuitiv schwerer zu komprimieren als normale Wörter)
  • usw.

Aber wenn dies nur ein One-Shot ist, dann sind Sie wahrscheinlich am besten mit Chaos Antwort und manuelle Verringerung der Ergebnisse. Gibt es etwas Besonderes in den Regex (s), die Sie suchen, die leichter zu erlernen sind?

    
Phil H 23.03.2009 20:53
quelle

Tags und Links