如果我有一个带有新行的输入,例如:
[INFO]
xyz
[INFO]
如何使用$
锚点拉出 xyz 部分?我尝试了类似的模式/^\[INFO\]$(.*?)$\[INFO\]/ms
,但 perl 给了我:
Use of uninitialized value $\ in regexp compilation at scripts\t.pl line 6.
有没有办法关闭插值,使锚按预期工作?
编辑:关键是行尾锚是一个美元符号,但有时可能需要将行尾锚散布在图案中。如果模式是插值的,那么您可能会遇到诸如 uninitialized 之类的问题$\
。例如,这里可以接受的解决方案是/^\[INFO\]\s*^(.*?)\s*^\[INFO\]/ms
,但这并不能解决第一个问题的症结所在。我已经改变了锚点,^
所以没有插值发生,有了这个输入,我可以自由地这样做。但是当我真的想$
在我的模式中引用 EOL 时呢?如何让正则表达式编译?