在写这个答案时,我必须只匹配换行符,而不是使用s-flag(-dotdotall匹配换行符)。
s
dotall
通常用于测试正则表达式的站点在尝试匹配\n或时表现不同\r\n。
\n
\r\n
我注意到
Regex101 仅匹配换行符\n (例如- 删除\r并匹配)
\r
RegExr 既不匹配\n 也不 匹配换行符,除了-flag 和 (示例)外,\r\n 我找不到使其匹配换行符的东西m``\s
m``\s
Debuggex 的行为更加不同: 在这个例子中它只匹配 on \r\n,而 这里它只匹配 on \n,并且指定了相同的标志和引擎
我完全了解m-flag (多行 -^匹配$一行的开头和结尾),但有时这不是一个选项。与 相同\s,因为它也匹配制表符和空格。
m
^
$
\s
我使用 unicode 换行符 ( \u0085) 的想法没有成功,所以:
\u0085
我会反方向回答。
长话短说,Linux\n用于新线、Windows\r\n和旧 Mac \r。所以有多种方法可以编写换行符。例如,您的第二个工具(RegExr)确实匹配单个\r.
[\r\n]+
(\r\n|\r|\n)