PHP Regex: How to match \r and \n without using [\r\n]? -
i have tested \v (vertical white space) matching \r\n , combinations, found out \v not match \r , \n. below code using..
$string = " test "; if (preg_match("#\v+#", $string )) { echo "matched"; } else { echo "not matched"; } to more clear, question is, there other alternative match \r\n?
pcre , newlines
pcre has superfluity of newline related escape sequences , alternatives.
well, nifty escape sequence can use here \r. default \r match unicode newlines sequences, can configured using different alternatives.
to match unicode newline sequence in ascii range.
preg_match('~\r~', $string); this equivalent following group:
(?>\r\n|\n|\r|\f|\x0b|\x85) to match unicode newline sequence; including newline characters outside ascii range , both line separator (u+2028) , paragraph separator (u+2029), want turn on u (unicode) flag.
preg_match('~\r~u', $string); the u (unicode) modifier turns on additional functionality of pcre , pattern strings treated (utf-8).
the equivalent following group:
(?>\r\n|\n|\r|\f|\x0b|\x85|\x{2028}|\x{2029}) it possible restrict \r match cr, lf, or crlf only:
preg_match('~(*bsr_anycrlf)\r~', $string); the equivalent following group:
(?>\r\n|\n|\r) additional
five different conventions indicating line breaks in strings supported:
(*cr) carriage return (*lf) linefeed (*crlf) carriage return, followed linefeed (*anycrlf) of 3 above (*any) unicode newline sequences note: \r not have special meaning inside of character class. other unrecognized escape sequences, treated literal character "r" default.
Comments
Post a Comment