Ich brauche Regex für die Erkennung von Namen, die [a-zA-Z_]
sein können, dann .
(Punkt) dann wieder [a-zA-Z_]
. I ([a-zA-Z_]+) \.([a-zA-Z_]*)
aber es funktioniert nicht. Hilfe ? Kann jemand mir Hacke geben, das in JFlex zu tun?Regex für Name Problem
Antwort
Ändern Regexp durch Punkt entkommen und Entfernen von Speicherplatz.
([a-zA-Z_]+)\.([a-zA-Z_]*)
weiterer Vorschlag fallen zu lassen() und temporäre Bezeichner verwenden
edit: von Ruf zunehmende Kommentierung regexp
[Kann Regex Antworten enthalten mehr Details in der Erklärung?] (Http://meta.stackexchange.com/questions/73553/can-regex-answers-include-more-detail-in-explanation) – delnan
Entschuldigung, danke :) –
Auch wenn es funktioniert: ein Downvote von mir zum Posten (1) nur eine einfache Regexp ohne Erklärung * und * (2) nicht diese einzelne Zeile als Code zu formatieren. Aber ich kann meine Stimme ändern;) –
Sie müssen den Punkt zu entkommen: "\". - Andernfalls behandelt der Regex-Parser das reservierte "any char" -Symbol.
- EDIT - Nun, da wir wissen, dass der Punkt und damit das eigentliche Problem nicht entgangen: Sind Sie sicher, dass der Raum vor dem Punkt ist beabsichtigt?
(es wurde entkernt - der Backslash zeigt sich, sobald Sie appy Code Formatierung) –
@Andreas_D: mmm ... Sie haben Recht. Ich nehme an, dass das OP mehr Informationen liefern sollte. –
Wenn dieses Muster aus dem ursprünglichen Code kopiert wird, dann, ja, ich wette, das Leerzeichen vor '\ .' ist der tatsächliche show stopper –
Beziehen Sie sich auf einen Literal-Punkt oder das Punkt-Metazeichen (entspricht allem außer einer neuen Zeile)? – 3lectrologos
Meine letzte Bearbeitung war ** nur ** Code-Formatierung, der Backslash war vorhanden, aber unsichtbar. (obwohl der Schnitt * aussieht * als ob ich diesen umgekehrten Schrägstrich hinzugefügt hätte - das war ich nicht, ehrlich !!) –
Was meinst du mit "funktioniert nicht"? erzeugt es einen Regex-Kompilierungsfehler? Kann es nicht mit etwas übereinstimmen, das es sollte, oder stimmt es mit etwas überein, das nicht sollte? –