DOTALL 修饰符
一个正则表达式模式,其中 DOTALL 修饰符(用 s
表示的大多数正则表达式)改变了 .
的行为,使其能够匹配换行符(LF):
/cat (.*?) dog/s
这个 Perl 风格的正则表达式将匹配 cat fled from\na dog
捕获 fled from\na
的字符串到组 1 中。
内联版本:(?s)
(例如 (?s)cat (.*?) dog
)
注意 :在 Ruby 中,DOTALL 修饰符等效于 m
, Regexp::MULTILINE
修饰符 (例如/a.*b/m
)。
注意 :JavaScript 不提供 DOTALL 修饰符,因此永远不允许 .
匹配换行符。为了达到同样的效果,需要一个解决方法,例如用一个全能字符类替换所有的 .
,如 [\S\s]
,或者一个不是什么字符类 [^]
(但是,这个结构将被所有其他引擎视为错误) ,因此不便携)。