2015-08-22 13 views
5

Według the leex documentationJak dopasować początek linii w leeksie?

^ Matches the beginning of a string.

Ale gdy próbuję go użyć w układzie takim jak ^[^\s\t-:]+[^:].*$ otrzymuję ten błąd: bad regexp 'illegal character ^'

Czy istnieje lepszy sposób, aby dopasować żebractwa linii | ciąg w leeksie?

+0

To może ale nie musi być związane z Twoim problemem, ale Twój pierwszy zestaw znaków prawdopodobnie nie jest tym, czego potrzebujesz. '[^ \ s \ t -:]' oznacza "** Ani ** Znak spacji * lub * dowolny znak w zakresie ** od znaku tabulacji do': '" Będzie używał zestawu znaków ASCII podczas tworzenia ten zakres. – d0nut

+0

dzięki @iismathwizard, to prawda i pomyłka; ale przejście do '[^ \ s \ t: -]' nadal powoduje ten sam błąd :( – jisaacstone

Odpowiedz

5

Pod koniec documentation page znaleźć tę notatkę:

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

co wydaje się oznaczać, że nie można używać ^ i $ z regexp pomiędzy jak ty.

Jeśli wiesz, że ciągi kończą się określonym znakiem (np. \n), zakładam, że zamiast tego można zastąpić $ tym znakiem ogranicznika.

+0

Zostanie to naprawione w przyszłej wersji głównej. :-) – rvirding

+0

Wow, czy istnieje jakieś obejście tego problemu? Na przykład, w jaki sposób można parsować kod Pythona (wcięcie spacji ma znaczenie na początku linii)? – loxs

Powiązane problemy