为什么我的正则表达式代码不起作用?

为什么我的正则表达式代码不起作用?

我最近一直在尝试在 TeXworks 上自定义语法突出显示模式,但我很难弄清楚如何处理例如括在 中的内容\footnote{}。有时我可能会在脚注内互锁函数,因此显然第一个右括号会“停止”我尝试定义的突出显示模式。经过一番研究,我最终找到了这个:

\\footnote\s*\{(?<=\{).*(?<=\})

我测试过了这里并且成功了。但是,当我尝试在 TeXworkssyntax-patterns.txt文件中实现它时,却不行。

知道我做错了什么吗?

答案1

每个正则表达式的实现都略有不同,特别是一旦超出核心功能范围时。您的正则表达式使用的是正向后视 ( (?<=):这不是完全“标准”的功能。TeXworks 使用的正则表达式引擎非常简单:没有前瞻/后瞻功能。事实上,您提供的正则表达式被 TeXworks 解析为无效:请尝试在搜索框中使用它。抱歉,您在这里根本无法使用这种方法。

相关内容