2 votes

Supprimer certains caractères spéciaux au début de la chaîne de caractères

Je souhaite supprimer un caractère spécial au début de la chaîne de caractères.

Eg : Ma ficelle :

- - Testing

Dans ce cas, il s'agit de

Testing

ce que j'ai essayé

trim($string, '-');

Mais cela ne fonctionne pas. Que dois-je faire ?

4voto

Wiktor Stribiżew Points 100073

Si vous prévoyez de supprimer les symboles et les espaces, utilisez la fonction

preg_replace('~^[\p{S}\p{P}\s]+~u', '', $s)

Ici, \p{S} correspond à n'importe quel symbole, \p{P} correspond à toute ponctuation propre et \s correspondra à tous les espaces blancs (en raison de l'utilisation de u il correspondra à tout espace blanc Unicode).

Pour supprimer les caractères qui ne sont pas des mots, utilisez '~^\W+~' (supprime les lettres non ASCII) ou '~^\W+~u' (les caractères accentués resteront intacts).

Si vous ne prévoit de supprimer que les espaces et les traits d'union au début d'une chaîne de caractères utiliser

preg_replace('~^[\s-]+~', '', $s)

Voir le Démonstration des expressions rationnelles

En ^[\s-]+ permet de trouver un ou plusieurs espaces ou traits d'union au début d'une chaîne de caractères.

Quelques variantes :

  • '~^[ -]+~' - ne supprimera que les espaces réguliers et les traits d'union au début de la chaîne de caractères
  • '~^[\h-]+~m' - supprime tous les traits d'union et les espaces horizontaux sur chaque ligne d'une chaîne de caractères
  • '~^[\h-]+~' - supprimera tous les traits d'union et les espaces horizontaux sur la première ligne uniquement

2voto

Pranav C Balan Points 10055

Vous devez inclure des espaces blancs avec le mot clé paramètre de masque de caractères .

trim($string, '- ');
// -------------^^---

// or add - along with default value from docs
trim($string, '- \t\n\r\0\x0B');
// -------------^^^^^^^^^^^^^---

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X