My program can accept data that has newline characters of \n, \r\n or \r (eg Unix, PC or Mac styles)
What is the best way to construct a regular expression that will match whatever the encoding is?
Alternatively, I could use universal_newline support on input, but now I'm interested to see what the regex would be.
The regex I use when I want to be precise is "\r\n?|\n"
.
When I'm not concerned about consistency or empty lines, I use "[\r\n]+"
, I imagine it makes my programs somewhere in the order of 0.2% faster.
The pattern can be simplified to \r?\n
for a little performance gain, as you probably don't have to deal with the old Mac style (OS 9 is unsupported since February 2002).
来源:https://stackoverflow.com/questions/1331815/regular-expression-to-match-cross-platform-newline-characters