如何在 LATEX 中编写正则表达式

如何在 LATEX 中编写正则表达式

我正在写一篇有正则表达式的论文

使用正则表达式“(?<=|)\d*/\d*/\d*”来查找报告日期。

我尝试在正则表达式中的每个字符前使用 backspash,但没有起作用

我尝试用 $$ 包装正则表达式,但仍然不起作用

怎么做?

答案1

Regex 使用了很多不同的字符,因此很难正确输入。如果您能找到一个未使用的字符,那么您可以使用\verb有效的字符,这样您就可以选择一个分隔符,然后在其之间放置代码。因此,如果您不需要管道字符,那么您可以这样做,\verb|[0-9A-Fa-F]|它只会显示[0-9A-Fa-f]。但正如您的示例所示,管道字符使用得很多,因此您必须选择其他字符。也许是感叹号。所以它\verb!(?<=|)\d*/\d*/\d*!会显示为(?<=|)\d*/\d*/\d*。您必须弄清楚每种情况都适用什么。

正如评论者提到的,还有一个名为 listings 的包,它更为强大,但对于像您示例中的内联代码来说效果不太好。

答案2

如果您无论如何都要使用biblatex,您也可以使用它的\regexp{}命令作为开箱即用的解决方案。

来自biblatex 文档

可以使用 Perl 转义序列,例如 \t 表示制表符、\n 表示换行符、\A 表示字符串开头或 \d 表示数字,而 TEX 不会尝试将它们作为命令执行,特殊字符如 ^、_ 或 {..} 和 # 也可以。只有 % 必须受到保护:要匹配 bib 中的单个 %,请在正则表达式中使用 %,\% 可匹配 %

相关内容