如何使用 Perl 正则表达式在任何行的开头(包括第一行)进行匹配?

Joe*_*Fan 5 regex perl

根据正则表达式的 Perl 文档

默认情况下,“^”字符保证仅匹配字符串的开头...嵌入的换行符不会与“^”匹配...但是,您可能希望将字符串视为多行缓冲区,这样“^”将在字符串中的任何换行符之后匹配...您可以通过在模式匹配运算符上使用 /m 修饰符来完成此操作。

“在任何换行符之后”部分意味着它只会在第二行及后续行的开头匹配。如果我想在任何行的开头(第一行、第二行等)进行匹配怎么办?

编辑:好的,看来该文件开头有 BOM 信息(3 个字符),这就是让我困惑的地方。有什么办法让 ^ 匹配吗?

编辑:所以最终它可以工作(只要没有 BOM),但现在看来 Perl 文档是错误的,因为它说“在任何换行符之后”

Eug*_*ash 3

如果您想保留 BOM,您无论如何都可以使用/^(?:\xEF\xBB\xBF)?/mg正则表达式在行的开头进行匹配。