正则表达式:在正则表达式定义的区域内多次匹配 (emacs)
Regex: match multiple times within regex defined region (emacs)
我正在为我使用的 markdown + latex 组合进行语法高亮显示。文档的主要模式是降价,我坚持的一点是在乳胶块内突出显示乳胶的特殊字符。
如果我们以 latex 环境为例:
\begin{align*}
f(x) &= x^2
g(x) &= x^3
\end{align*}
我可以匹配简单的环境(没有emacs的转义)^\begin{.*}(.|\n)*?\end{.*}$
(我知道这不适用于环境中的环境,我知道必须使 {.*}
部分的开头和结尾相同 - 我很乐意就最佳方式提出建议也这样做)编辑:修复它,只需要捕获开始标签然后在结束标签中使用它。
我有兴趣在环境中(但不在环境外)突出显示 latex 的特殊字符:这些字符是 $#^_{}&
。如果有人能指出我修改环境检测器的方向,使一个或多个组包含这些字符,我将不胜感激。 (我不确定这是否完全可能)。
干杯!
使用 anchored font-lock 关键字,将匹配锚定在环境中的某个点。请参阅 Elisp 手册,节点 Search-based Fontification。请参阅 (MATCHER . ANCHORED-HIGHLIGHTER)
和 (MATCHER HIGHLIGHTERS...)
的说明。
(但请注意,一般来说,正则表达式不够强大,无法进行您想在此处进行的那种匹配。根据您对嵌套等的评论,我猜您已经知道这一点)
我正在为我使用的 markdown + latex 组合进行语法高亮显示。文档的主要模式是降价,我坚持的一点是在乳胶块内突出显示乳胶的特殊字符。
如果我们以 latex 环境为例:
\begin{align*}
f(x) &= x^2
g(x) &= x^3
\end{align*}
我可以匹配简单的环境(没有emacs的转义)^\begin{.*}(.|\n)*?\end{.*}$
(我知道这不适用于环境中的环境,我知道必须使 {.*}
部分的开头和结尾相同 - 我很乐意就最佳方式提出建议也这样做)编辑:修复它,只需要捕获开始标签然后在结束标签中使用它。
我有兴趣在环境中(但不在环境外)突出显示 latex 的特殊字符:这些字符是 $#^_{}&
。如果有人能指出我修改环境检测器的方向,使一个或多个组包含这些字符,我将不胜感激。 (我不确定这是否完全可能)。
干杯!
使用 anchored font-lock 关键字,将匹配锚定在环境中的某个点。请参阅 Elisp 手册,节点 Search-based Fontification。请参阅 (MATCHER . ANCHORED-HIGHLIGHTER)
和 (MATCHER HIGHLIGHTERS...)
的说明。
(但请注意,一般来说,正则表达式不够强大,无法进行您想在此处进行的那种匹配。根据您对嵌套等的评论,我猜您已经知道这一点)