Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Newline-Zeichen in PHP Regex zuordnen, ohne [\\r\\n] zu verwenden?

Wie kann ich Newline-Zeichen in PHP Regex zuordnen, ohne [\\r\\n] zu verwenden?

Barbara Streisand
Barbara StreisandOriginal
2024-11-03 19:00:04585Durchsuche

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

Übereinstimmung von Newline-Zeichen in PHP-Regex ohne [rn]

In PHP wird der reguläre Ausdruck [rn] häufig verwendet, um Wagenrückläufe (r) oder Zeilenvorschübe ( N). Was aber, wenn Sie diese Zeichen abgleichen möchten, ohne dieses spezielle Muster zu verwenden?

Unicode Newline Escape-Sequenz: R

PCRE führt die R-Escape-Sequenz ein, die standardmäßig entspricht Unicode-Neuzeilensequenzen. Dazu gehören:

  • rn (CRLF)
  • n (LF)
  • r (CR)
  • f (Formfeed)
  • x0b (vertikaler Tab)
  • x85 (Nächste Zeile)

Beispiel:

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

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

Unicode Newline Escape-Sequenz mit „u“-Flag:

Um Zeilenumbruchzeichen außerhalb des ASCII-Bereichs abzugleichen, aktivieren Sie das „u“-Flag (Unicode):

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

R einschränken zu CR, LF oder CRLF:

Wenn Sie nur Wagenrückläufe, Zeilenvorschübe oder beides abgleichen möchten, verwenden Sie das folgende Muster:

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

Zusätzliche Konventionen für Zeilenumbrüche:

PCRE unterstützt auch verschiedene Konventionen zur Angabe von Zeilenumbrüchen:

  • (*CR) - Wagenrücklauf
  • (*LF) - Zeilenvorschub
  • (*CRLF) – Wagenrücklauf, gefolgt von Zeilenvorschub
  • (*ANYCRLF) – Eine der oben genannten drei
  • (*ANY) – Alle Unicode-Neuzeilensequenzen

Hinweis:R hat innerhalb einer Zeichenklasse keine besondere Bedeutung und fungiert stattdessen als wörtliches Zeichen „R.“

Das obige ist der detaillierte Inhalt vonWie kann ich Newline-Zeichen in PHP Regex zuordnen, ohne [\\r\\n] zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn