TexDef 中的错误:正则表达式中未转义的左括号已被弃用

TexDef 中的错误:正则表达式中未转义的左括号已被弃用

最近使用时遇到了一些警告texdef。当然,命令本身运行良好。

运行命令:texdef TeX产生以下错误消息:

Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^\\\@protected\@testopt { <-- HERE ?\\.*? }? *(\\\\.*?) / at /usr/local/bin/texdef line 391.
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^\\\@testopt { <-- HERE ?(\\.*?) }?/ at /usr/local/bin/texdef line 394.

如果我没记错的话,这与 PERL 有关。

这是只发生在我的电脑上,还是发生在所有人身上?

我正在运行 MacOSX El Capitan,texdef版本 1.7b,perl版本 v5.22.1

答案1

未转义的花括号是 Perl 正则表达式中的特殊字符,用于指示要匹配的先前字符、表达式或捕获组的编号。例如,s/h{2}/h/g;将是一个替换表达式,它将每个双“h”字符替换为一个字符。为了向 Perl 澄清您的花括号不应以这种方式考虑,而是应作为文字字符进行匹配,您需要使用反斜杠对其进行转义。

相关内容