Comment puis-je remplacer / supprimer le mot de correspondance exacte de la chaîne, un exemple de chaîne
$string = 'Hello world, command data test com';
Comment supprimer com (correspondance exacte de la chaîne) mais ne pas supprimer le com de la commande à
3 Réponses :
Vous devez utiliser preg_replace . En gros, Explication: Le modèle ci-dessus est expliqué ci-dessous \ b: Correspond à une limite de mot. Pour plus de définitions de caractères spéciaux, cochez ceci preg_replace() recherche le sujet pour les correspondances de modèle et les remplace par le remplacement. <?php
$string = 'Hello world, command data test com';
$string = preg_replace('/\bcom\b/', '', $string);
echo $string;
?>
com: Texte correspondant.
Je vous remercie! c'est ce dont j'avais besoin!
@Smartpal je ne pense pas, str_replace () remplace la commande par mand
@ShanteshwarInde Ouais c'est .... Désolé, j'ai oublié com dans la commande. Voté
@ShanteshwarInde terminé, il fallait attendre 4 minutes de plus pour l'accepter
Version courte:
<?php
$string = 'Hello world, command data test com';
$words = explode(' ', $string);
$words = array_diff($words, ['com']);
$string = join(' ', $words);
Explication:
explode ('', $ string) divise votre chaîne en un tableau de mots array_diff ($ words, ['com']) supprime les éléments du deuxième tableau du premier tableau. Donc au cas où le tableau de $ words contient le mot com , il sera supprimé join ('', $ words) concat toutes les chaînes du tableau $ words , en divisant chaque mot l'un de l'autre par un espace. Extrait complet:
join(' ',array_diff(explode(' ', $string), ['com']));
même si ma réponse a plus de votes positifs, mais celle-ci est ma préférée! ajoutez simplement une explication pour que plus de gens comprennent. Merci!
Je pense honnêtement que le vôtre est meilleur! Haha je vais ajouter une meilleure explication
Une autre version ...
Si votre chaîne d'entrée est toujours dans cet ordre, vous pouvez le faire avec rtrim
Snippet
Hello world, command data test
Output
$string = 'Hello world, command data test com'; $string = rtrim($string, ' com'); echo $string;
str_replace supprime com de la commande vers, cela n'aide pas