Sama liczba odwrotnych ukośników, których wymagają moje wyrażenia regularne, jest dość szalona. Czy elisp ma literały regularne, więc mogę napisać coś takiego
rx"some\(regexp\)"
zamiast
"some\\(regexp\\)"
Sama liczba odwrotnych ukośników, których wymagają moje wyrażenia regularne, jest dość szalona. Czy elisp ma literały regularne, więc mogę napisać coś takiego
rx"some\(regexp\)"
zamiast
"some\\(regexp\\)"
\\|
,\\(
i\\)
. Niestety w wielu motywach nie jest to widoczne. Możesz zastąpićfont-lock-regexp-grouping-backslash
ifont-lock-regexp-grouping-construct
uczynić to bardziej wyraźnym.Odpowiedzi:
Jedną z opcji jest użycie
rx
makra do konstruowania wyrażeń za pomocą sexps.Twój przykład staje się
(rx "some" (group "regexp"))
Oto kilka innych przykładów z sekcji komentarzy w rx.el, aby dowiedzieć się, jak to
rx
działa:To się
^;;\\s-*\n\\|^\n
stajeTo się
[ \t\n]*:\\([^:]+\\|$\\)
stajeźródło
rx
składnię, która ułatwia ich obsługę. Imho, dla podobnych przypadków, sama składnia rx sprawia, że elisp jest godnym substytutem języka Python w języku Perl, ruby itp. Dziękujemy.Nie, nie ma wyrażeń regularnych , ale wielu uważa pcre2el za pomocną alternatywę.
Używając go w szczególności z elisp:
źródło