2015-08-22 5 views
5

Nach the leex documentationWie passt man den Anfang einer Zeile in leex?

^ Matches the beginning of a string.

Aber wenn ich versuche, es in einem Muster zu verwenden, wie ^[^\s\t-:]+[^:].*$ bekomme ich diesen Fehler: bad regexp 'illegal character ^'

Gibt es einen besseren Weg, um die Bettelei einer Linie entsprechen | Zeichenfolge in leex?

+0

Dies hängt möglicherweise nicht mit Ihrem Problem zusammen, aber Ihr erster Zeichensatz ist wahrscheinlich nicht das, was Sie wollen. '[^ \ s \ t -:]' bedeutet "** Weder ** Ein Leerzeichen * oder * ein beliebiges Zeichen im ** Bereich ** von Tabulatorzeichen zu': '" Es wird beim Erstellen den ASCII-Zeichensatz verwenden dieser Bereich. – d0nut

+0

danke @iismathwizard, das ist wahr und ein Fehler; aber chaning zu '[^ \ s \ t: -]' erzeugt immer noch den gleichen Fehler :( – jisaacstone

Antwort

5

Am Ende der documentation page Sie diese Notiz finden:

Anchoring a regular expression with^and $ is not implemented in the current version of Leex and just generates a parse error.

, die Sie nicht zu bedeuten scheint ^ und $ mit einem regexp dazwischen, wie Sie tun können.

Wenn Sie wissen, dass die Zeichenketten mit einem bestimmten Zeichen (wie \n) enden, nehme ich an, dass Sie die $ stattdessen mit diesem Zeichentrennzeichen ersetzen können.

+0

Dies wird in einer zukünftigen Hauptversion behoben werden. :-) – rvirding

+0

Wow, gibt es eine Workaround dafür? Zum Beispiel, wie würde man Python-Code analysieren (Whitespace-Indentation am Anfang der Zeile wichtig)? – loxs

Verwandte Themen