Maison  >  Article  >  développement back-end  >  Comment puis-je faire correspondre les caractères de nouvelle ligne dans PHP Regex sans utiliser [\\r\\n] ?

Comment puis-je faire correspondre les caractères de nouvelle ligne dans PHP Regex sans utiliser [\\r\\n] ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 19:00:04584parcourir

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

Correspondance des caractères de nouvelle ligne dans PHP Regex sans [rn]

En PHP, l'expression régulière [rn] est couramment utilisée pour faire correspondre les retours chariot (r) ou les sauts de ligne ( n). Cependant, que se passe-t-il si vous souhaitez faire correspondre ces caractères sans utiliser ce modèle spécifique ?

Séquence d'échappement de nouvelle ligne Unicode : R

PCRE introduit la séquence d'échappement R, qui par défaut correspond aux séquences de nouvelle ligne Unicode. Ceux-ci incluent :

  • rn (CRLF)
  • n (LF)
  • r (CR)
  • f (Fil de formulaire)
  • x0b (onglet vertical)
  • x85 (ligne suivante)

Exemple :

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

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

Nouvelle ligne Unicode Séquence d'échappement avec l'indicateur « u » :

Pour faire correspondre les caractères de nouvelle ligne en dehors de la plage ASCII, activez l'indicateur « u » (unicode) :

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

Restriction de R en CR, LF ou CRLF :

Si vous souhaitez uniquement faire correspondre les retours chariot, les sauts de ligne ou les deux, utilisez le modèle suivant :

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

Conventions supplémentaires pour les caractères de nouvelle ligne :

PCRE prend également en charge diverses conventions pour indiquer les caractères de nouvelle ligne :

  • (*CR) - Retour chariot
  • (*LF) - Saut de ligne
  • (*CRLF) - Retour chariot, suivi d'un saut de ligne
  • (*ANYCRLF) - L'un des trois ci-dessus
  • (*ANY) - Toutes les séquences de nouvelle ligne Unicode

Remarque : R n'a pas de signification particulière dans une classe de caractères et agit plutôt comme le caractère littéral "R."

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn