Si aún está interesado, eche un vistazo a cexp.el.
Es solo un truco pero quizás sirva para su propósito.
Puede buscar expresiones regulares y equilibradas combinadas con cexp-search-forward
. El re-search-forward
incorporado se usa para expresiones regulares y, por lo tanto, se aplican sus reglas de sintaxis. Las expresiones equilibradas se pueden combinar con los elementos de sintaxis adicionales \!(
y \!)
.
La restricción más seria es que las expresiones equilibradas pueden no producirse en grupos. Entonces una construcción como \!(^{ \(\!(^{.*}$\!)\)+ }$\!)
no funciona debido al grupo que contiene la expresión interna balanceada.
Sin embargo, un ejemplo útil es coincidente tex-definiciones como
\def\mdo#1{{\def\next{\relax}\def\tmp{#1}\ifx\next\tmp\else\def\next{#1\mdo}\expandafter}\next}
con expresiones combinadas como
\\def\\[[:alpha:]]+\(#[0-9]\)*\!(^{.*}$\!)
La búsqueda a través de Cexp-search-forward con el Cexp anterior devuelve los límites para la siguientes grupos:
- El comienzo y el final del partido completo
- Los límites de la aparición de la expresión regular antes de la expresión equilibrada, es decir,
\def\mdo#1
- Los límites del grupo capturados en la primera expresión regular, es decir,
#1
- Los límites de la expresión equilibrada, es decir,
{{\def\next{\relax}\def\tmp{#1}\ifx\next\tmp\else\def\next{#1\mdo}\expandafter}\next}
ha! SO es divertido. Mientras busco más pistas sobre esto, escribiendo "emacs regex balanceado" en google, obtengo * esta pregunta * como el primer golpe. je je. – Cheeso