我正在写一篇有正则表达式的论文
使用正则表达式“(?<=|)\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{}
命令作为开箱即用的解决方案。
可以使用 Perl 转义序列,例如 \t 表示制表符、\n 表示换行符、\A 表示字符串开头或 \d 表示数字,而 TEX 不会尝试将它们作为命令执行,特殊字符如 ^、_ 或 {..} 和 # 也可以。只有 % 必须受到保护:要匹配 bib 中的单个 %,请在正则表达式中使用 %,\% 可匹配 %