未转义左支撑正则表达式错误

The*_*day 9 regex ubuntu perl pam

我不是正则表达式的专家,无法想象我应该在这里改变什么.

我得到了这两个错误

正则表达式中未转义的左括号被弃用,在正则表达式中传递; 通过标记<-- HEREm/^(.*?)(\\)?\${ <-- HERE ([^{}]+)}(.*)$/在/usr/share/perl5/Debconf/Question.pm线72.

正则表达式中未转义的左括号被弃用,在正则表达式中传递; 通过标记<-- HEREm/\${ <-- HERE ([^}]+)}/在/usr/share/perl5/Debconf/Config.pm线30.

当我跳到第72行时,这就是我所看到的

while ($rest =~ m/^(.*?)(\\)?\${([^{}]+)}(.*)$/sg) {
Run Code Online (Sandbox Code Playgroud)

ike*_*ami 11

这是一个弃用警告指示代码将停止工作,在未来.

如果你想在{字面上匹配,你应该逃避它.

换句话说,您可以通过更换第一修复(沉默警告)问题{\{.

  • 逃脱`{`并非总是最好的解决方案。有时,使用“ {,n}”代替“ {0,n}”来表示0..n重复。这曾经起作用,现在0不再是可选的。 (2认同)