正则表达式:在正则表达式定义的区域内匹配多次(emacs)

时间:2015-08-08 09:53:00

标签: regex emacs syntax-highlighting

我正在研究我使用的降价+乳胶组合的语法高亮。该文件的主要模式是降价,我坚持的位是突出乳胶块内乳胶的特殊字符。

如果我们采用乳胶环境:

\begin{align*}
    f(x) &= x^2
    g(x) &= x^3
\end{align*}

我可以将简单环境与(没有emacs'转义)^\\begin{.*}(.|\n)*?\\end{.*}$

匹配

(我知道这不适用于环境中的环境,我知道必须让{.*}部分在开始和结束时都相同 - 我很乐意就最好的方法提出建议编辑:修正它,只需捕获开始标记,然后在结束标记中使用它。

我有兴趣在环境中突出乳胶的特殊字符(但不在其外部):这些字符是$#^_{}&。如果有人能指出我修改环境检测器的方向,让一个或多个组包含这些字符,我将非常感激。 (我不确定这完全有可能)。

干杯!

1 个答案:

答案 0 :(得分:0)

使用锚定 font-lock关键字,将匹配锚定在环境中的某个位置。请参阅Elisp手册,节点Search-based Fontification。请参阅(MATCHER . ANCHORED-HIGHLIGHTER)(MATCHER HIGHLIGHTERS...)的说明。

(但请注意,正则表达式不够强大,无法在此处进行您想要进行的匹配。我猜您已经根据您对嵌套等的评论了解这一点。)