Comment faire pour supprimer tout ce qui est avant le premier caractère d'une chaîne?
Mes variables ressembler à ceci:
AAAAAAA, BB CCCCCCCC
AAAA,BBBBBB CCCCCC
Je voudrais enlever tout ce qui est avant le ",
",
donc le résultat devrait ressembler à:
BB CCCCCCCC
BBBBBB CCCCCC
J'ai travaillé sur cette option pour supprimer tout ce qui est APRÈS le ",
":
list($xxx) = explode(',', $yyyyy);
malheureusement je ne sais pas comment le faire fonctionner pour supprimer tout ce qui est AVANT le ",
".
Vous pouvez trouver
s($str)->afterFirst(',')
utile, que l'on trouve dans cette bibliothèque autonome.$xxx = explode(',', $yyyyy, 2)[1];
OriginalL'auteur Andrej | 2011-03-16
Vous devez vous connecter pour publier un commentaire.
Je ne recommande pas l'utilisation d'exploser, il provoque plus de problèmes si il n'y a plus d'une virgule.
Edit:
+1 -- C'est plus rapide et plus lisible (à mon humble avis) que la regexp. Aller avec cela.
Merci cela a très bien fonctionné!
Il échoue cependant quand il n'y a pas une virgule.
strpos()
retourne false lorsqu'il n'y a pas une virgule,false + 1
= 1, ce qui signifie que vous finirez par le décapage de votre premier personnage.l'utilisation de la garniture (comme mon exemple ci-dessous
OriginalL'auteur Tim Cooper
Puisque c'est une simple manipulation de la chaîne, vous pouvez utiliser les méthodes suivantes pour supprimer tous les caractères avant la première virgule:
preg_replace()
vous permet de remplacer certaines parties d'une chaîne basée sur une expression régulière. Jetons un coup d'oeil à l'expression régulière.Que faire si je veux supprimer tous les caractères avant le et virgule?
J'ai été à la recherche pour le même. Finissent par le remplacement de la
''
avec','
donc le code complet:$string = preg_replace('/^[^,]*,\s*/', ',', $input);
OriginalL'auteur Andrew Moore
$xxx = explode(',', $yyyyy, 2)[1];
.OriginalL'auteur nickf
essayer ce qu'il obtient le dernier truc après , si non , est présent, il va vérifier à partir de la dernière case, j'ai enveloppé dans une fonction pour le rendre facile:
OriginalL'auteur Lawrence Cherone
que vous pouvez faire:
il n'y a pas d'autres virgules dans la question de l'exemple
Vrai. Il était dans mon cas, et pour répondre à "Supprimer Tout ce qui est Avant le premier “,” dans une chaîne de caractères" je pense qu'il est bon d'ajouter. Merci pour une bonne solution.
OriginalL'auteur Neal
Regex est généralement coûteux et je ne le recommande pas pour quelque chose d'aussi simple que cela.
À l'aide d'exploser et de la limiter à 2 entraîneront probablement dans le même temps d'exécution que l'utilisation de str_pos mais vous n'avez rien d'autre à faire pour générer la chaîne voulue comme son stocké dans le deuxième indice.
OU
OriginalL'auteur TarranJones