Le nombre de barres obliques inverses dont mes regexps ont besoin est assez fou. Elisp a-t-il des littéraux regexp, donc je peux écrire quelque chose comme
rx"some\(regexp\)"
au lieu de
"some\\(regexp\\)"
elisp
regular-expressions
syntax
ouaouaron
la source
la source
\\|
,\\(
et\\)
. Malheureusement, dans de nombreux thèmes, cela n'est pas visible. Vous pouvez remplacerfont-lock-regexp-grouping-backslash
etfont-lock-regexp-grouping-construct
rendre cela plus distinct.Réponses:
Une option consiste à utiliser la
rx
macro pour construire vos expressions à l'aide de sexps.Votre exemple devient
(rx "some" (group "regexp"))
Voici quelques autres exemples de la section des commentaires dans rx.el, pour avoir une idée du
rx
fonctionnement:Cela
^;;\\s-*\n\\|^\n
devientCela
[ \t\n]*:\\([^:]+\\|$\\)
devientla source
rx
syntaxe, ce qui les rend plus faciles à maintenir. À mon humble avis , pour des cas similaires, la syntaxe rx en elle-même fait d'elisp un substitut digne de ce nom pour le python perl, le rubis, etc. Merci.Non, il n'a pas de littéraux regexp, mais beaucoup trouvent pcre2el comme une alternative utile.
En l'utilisant spécifiquement à partir d'Elisp comme ceci:
la source