PHP正则表达式:如何在不使用[\ r \ n]的情况下匹配\ r和\ n?
我已经测试了\v(垂直空白)匹配\r\n及其组合,但是发现\v与\r和不匹配\n。以下是我正在使用的代码。
$string = "Test
";
if (preg_match("#\v+#", $string )) {
echo "Matched";
} else {
echo "Not Matched";
}
更明确地说,我的问题是,还有其他匹配的替代方法\r\n吗?
回答:
回答:
PCRE具有许多与换行相关的转义序列和替代方法。
好吧,您可以在此处使用一个漂亮的转义序列\R。默认情况下\R将匹配Unicode换行符序列,但可以使用其他替代方法进行配置。
匹配ASCII范围内的任何Unicode换行符序列。
preg_match('~\R~', $string);这等效于以下组:
(?>\r\n|\n|\r|\f|\x0b|\x85)匹配任何Unicode换行符序列;包括ASCII范围之外的换行符以及行分隔符(U+2028)和段落分隔符(U+2029),您都想打开u(
unicode )标志。
preg_match('~\R~u', $string);的u( unicode的 上PCRE与模式串的附加功能)改性剂匝被视为( )。
等效于以下组:
(?>\r\n|\n|\r|\f|\x0b|\x85|\x{2028}|\x{2029})它可以限制\R匹配CR,LF或CRLF只:
preg_match('~(*BSR_ANYCRLF)\R~', $string);等效于以下组:
(?>\r\n|\n|\r)回答:
支持五种用于指示字符串中的换行符的约定:
(*CR) carriage return(*LF) linefeed
(*CRLF) carriage return, followed by linefeed
(*ANYCRLF) any of the three above
(*ANY) all Unicode newline sequences
:\R在字符类内部没有特殊含义。与其他无法识别的转义序列一样,默认情况下将其视为文字字符“ R”。
以上是 PHP正则表达式:如何在不使用[\ r \ n]的情况下匹配\ r和\ n? 的全部内容, 来源链接: utcz.com/qa/403523.html

