首页 >后端开发 >php教程 >如何在不使用 [\\r\\n] 的情况下匹配 PHP 正则表达式中的换行符?

如何在不使用 [\\r\\n] 的情况下匹配 PHP 正则表达式中的换行符?

Barbara Streisand
Barbara Streisand原创
2024-11-03 19:00:04657浏览

How Can I Match Newline Characters in PHP Regex Without Using [\r\n]?

在没有 [rn] 的情况下匹配 PHP 正则表达式中的换行符

在 PHP 中,正则表达式 [rn] 通常用于匹配回车符 (r) 或换行符 ( n)。但是,如果您想在不使用此特定模式的情况下匹配这些字符,该怎么办?

Unicode 换行转义序列:R

PCRE 引入了 R 转义序列,默认情况下该序列匹配 Unicode 换行序列。其中包括:

  • rn (CRLF)
  • n (LF)
  • r (CR)
  • f(换页)
  • x0b(垂直制表符)
  • x85(下一行)

示例:

<code class="php">$string = "
Test
";

if (preg_match('~\R~', $string)) {
  echo "Matched";
} else {
  echo "Not Matched";
}</code>

Unicode 换行符带“u”标志的转义序列:

要匹配 ASCII 范围之外的换行符,请启用“u”(unicode)标志:

<code class="php">preg_match('~\R~u', $string);</code>

限制 R到 CR、LF 或 CRLF:

如果您只想匹配回车符、换行符或两者,请使用以下模式:

<code class="php">preg_match('~(*BSR_ANYCRLF)\R~', $string);</code>

其他约定对于换行符:

PCRE 还支持各种表示换行符的约定:

  • (*CR) - 回车
  • (*LF) -换行
  • (*CRLF) - 回车,后跟换行
  • (*ANYCRLF) - 以上三个中的任何一个
  • (*ANY) - 所有 Unicode 换行序列

注意: R 在字符类中没有特殊含义,而是充当文字字符“R”。

以上是如何在不使用 [\\r\\n] 的情况下匹配 PHP 正则表达式中的换行符?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn