\s
par défaut, sera pas correspondance des caractères blancs avec des valeurs supérieures à 128. Pour obtenir à ceux-ci, vous pouvez plutôt faire bon usage d'autres séquences UTF-8-aware .
(Limites de responsabilités: Je suis écrémage le code source PCRE pour compiler les listes ci-dessous, je manquer un personnage ou taper quelque chose de manière incorrecte S'il vous plaît pardonnez-moi..)
\p{Zs}
matches:
- U + 0020 Espace
- U + 00A0 Espace insécable
- U + 1680 marque l'espace Ogham
- U + 180E séparateur voyelle mongole
- U + 2000 En quad
- U + 2001 cadratin
- U + 2002 Espace En
- U + 2003 espace Em
- U + 2004 espace Trois-per-em
- U + 2005 espace Quatre-per-em
- U + 2006 espace Six-per-em
- U + 2007 Figure espace
- U + 2008 Ponctuation espace
- U + 2009 espace mince
- U + 200A espace cheveux
- U + 202F Affinez espace insécable
- U + 205F Moyen espace mathématique
- U + 3000 idéographique espace
\h
(d'un espace horizontal) correspond à la même que celle \p{Zs}
ci-dessus, plus
- U + 0009 onglet horizontal.
De même pour l'espacement vertical vertical, il existe quelques options.
\p{Zl}
correspond à U + 2028 séparateur ligne.
\p{Zp}
correspond à U + 2029 séparateur de paragraphe.
\v
(espace vertical) correspond \p{Zl}
, \p{Zp}
ce qui suit
- U + 000A Linefeed
- onglet U + 000B vertical
- U + 000C Formfeed
- retourner U + 000D transport
- U + 0085 Ligne suivante
Pour en revenir au début, en mode UTF-8 (c.-à-d.en utilisant le modificateur de modèle u
) \s
correspond à tout caractère qui \p{Z}
matchs (ce qui est tout ce qui \p{Zs}
, \p{Zl}
et \p{Zp}
correspondront), plus
- U + 0009 Tabulation horizontale
- U + 000A Linefeed
- U + 000C Formfeed
- U + 000D de retour chariot
Pour couper une longue histoire courte (je parie que vous avez lu tout ce qui précède, n'est-ce pas?) Vous pouvez utiliser \s
mais assurez-vous d'être en mode UTF-8 comme /\s/u
. Mettre cela à une utilisation pratique, pour filtrer les caractères blancs correspondant d'une chaîne que vous feriez quelque chose comme
$new_string = preg_replace('/\s/u', '', $old_string);
Enfin, si vous avez vraiment, vraiment à la verticale qui sont des espaces blancs non inclus dans \s
(LF et NEL), vous pouvez utiliser la classe de caractères [\s\v]
pour faire correspondre les 26 caractères d'espacement énumérés ci-dessus.
L'espace pour regex est '\ s' – knittl