Ant*_*nko 27 regex emacs pattern-matching org-mode
该表达式reftex-view-crossref-extra为reftex-view-crossref函数设置了其他模式.它由Macro Regexp,Search Regexp和Highlight Group组成(如下图所示):
(MACRO-RE SEARCH-RE HIGHLIGHT).
MACRO-RE与宏匹配.SEARCH-RE是用于搜索交叉引用的正则表达式.此正则表达式中的`%s'将替换为点处的宏参数.HIGHLIGHT是一个整数,表示应突出显示匹配的哪个子组.
我正在尝试匹配以下模式(组织模式脚注):
[fn:author2000title:Optional text]
author2000title是我想要匹配的biblatex标签.我怎么能写MACRO-RE和SEARCH-RE,使得   reftex-view-crossref这几样工程的纪录?
也许这会帮助您找到适合您的特殊设置的解决方案。为了测试这一点,我设置了一个小型组织测试文件
\n\n* Heading 1\n  \\oinc{mylabel}\n   stuff\n* Heading 2\n  otherstuff [fn:mylabel:Display text]\n设置reftex-view-crossref-extra为
(setq reftex-view-crossref-extra \'(("\\\\\\\\oinc" "\\\\[fn:%s:[^]]*?\\\\]" 0)))\n如果我将点放在\\oinc{mylabel}大括号内,然后按C-c &,[fn...]则会突出显示并识别为第一个且唯一的匹配项。
编辑:替换"\\\\\\\\oinc"为包含您使用的定义宏的标签的正则表达式,例如"\\\\\\\\mylabel\\\\|\\\\\\\\oinc". 您无法为标准命令\\label等定义参考匹配;它们的处理是硬编码的;但您可以定义一个新命令,别名为 standard\xc2\xb9,并使用它来定义标签,可以使用reftex-view-crossref此处显示的设置方式来搜索自定义引用。
总结一下:MACRO-RE是一个与不带您感兴趣的参数的宏相匹配的正则表达式,SEARCH-RE是一个与您所需的参考格式相匹配的正则表达式,并且您应该在其中放置一个%s将被与 . 匹配的宏的参数替换的MATCH-RE。如果您SEARCH-RE包含捕获括号,则可以仅突出显示捕获匹配的部分,方法是提供第三个列表元素HIGHLIGHT作为整数,引用正则表达式常用的捕获括号,即0整个匹配、1第一次捕获、2第二次捕获等.,其中左括号的顺序定义了捕获的匹配的编号。
亲切的问候,\n汤姆
\n\n1:\\newcommand{\\mylabel}[1]{\\label{#1}}
注意:如果您只想mylabel在搜索/匹配时突出显示,请将其更改为
(setq reftex-view-crossref-extra \'(("\\\\oinc" "\\\\[fn:\\\\(%s\\\\):[^]]*?\\\\]" 1)))\nSEARCH-RE请注意列表中第二个元素中的匹配括号。