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]
,或者一個不是什麼字元類 [^]
(但是,這個結構將被所有其他引擎視為錯誤) ,因此不便攜)。