MULTILINE 修饰符
另一个例子是 MULTILINE 修饰符(通常用 m
标志表示(不是 Oniguruma(例如 Ruby),使用 m
表示 DOTALL 修饰符)),使^
和 $
锚点匹配一行的开头/结尾,而不是开头/结尾整个字符串。
/^My Line \d+$/gm
将找到以 My Line
开头的所有行,然后包含一个空格和 1+位到行尾。
内联版本:(?m)
(例如 (?m)^My Line \d+$
)
注意 :在 Oniguruma 中(例如在 Ruby 中),以及几乎所有支持 regexp 的文本编辑器中,^
和 $
锚点默认表示行开始/结束位置。你需要使用\A
来定义整个文档/字符串 start 和\z
来表示文档/字符串结尾。\Z
和\z
之间的区别在于前者可以在字符串末尾的最终换行(LF)符号之前匹配(例如/\Astring\Z/
将在 string\n
中找到匹配)(除了 Python,其中\Z
行为等于\z
和\z
不支持锚)。 **