Maison  >  Article  >  développement back-end  >  Comment diviser des chaînes par plusieurs délimiteurs ?

Comment diviser des chaînes par plusieurs délimiteurs ?

DDD
DDDoriginal
2024-11-21 13:08:11193parcourir

How to Split Strings by Multiple Delimiters?

Diviser des chaînes par plusieurs délimiteurs

Dans le domaine de la manipulation de chaînes, diviser sans effort un texte donné en mots discernables est une entreprise courante. Face à un seul délimiteur, le problème peut facilement être résolu en utilisant la méthode éprouvée consistant à utiliser un flux de chaînes et à extraire des sous-chaînes. Cependant, lorsque la tâche implique la reconnaissance de plusieurs délimiteurs, une approche différente est requise.

Supposons que parmi les multiples délimiteurs se trouve le caractère de nouvelle ligne. Dans ce scénario, la solution consiste à lire la ligne dans son intégralité, puis à la diviser davantage en fonction des délimiteurs supplémentaires. Dans l'exemple de code donné, l'accent est mis sur l'identification et l'extraction de mots délimités par des espaces, des apostrophes et des points-virgules.

Le code commence par utiliser un objet stringstream pour parcourir la chaîne d'entrée. Il procède à la lecture des lignes une par une et pour chaque ligne, lance un processus itératif. Dans cette boucle itérative, il utilise la fonction find_first_of() pour localiser la position de l'un des délimiteurs spécifiés dans la ligne. Si un tel délimiteur est trouvé, la sous-chaîne jusqu'à ce point est extraite et ajoutée à un vecteur de mots. Ce processus se poursuit jusqu'à ce que la fin de la ligne soit atteinte, moment auquel tout texte restant est ajouté au vecteur de mots.

En adoptant cette approche, vous donnez à votre programme la possibilité de diviser efficacement une chaîne donnée en mots significatifs, même en présence de plusieurs délimiteurs.

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