J'aimerais savoir s'il y a une méthode utilisant Boost :: Split pour diviser une chaîne à l'aide de chaînes entières en tant que délimiteur. Par exemple: existe une méthode pour diviser cette chaîne à l'aide de résultats serait la chaîne Je suis conscient de "abc" code> comme un délimiteur? Donc revenir: p>
"xxaxxxx" code> et
"xxxxbxxxcxxx" code>. P>
boost :: Split code> à l'aide du
"is_any_of" code> prédicat, cependant appeler
is_any_of ("ABC") code> entraînerait la division de la chaîne du seul caractère "A ',' B ', et "c" aussi, ce qui n'est pas ce que je veux. p> p>
3 Réponses :
Oui, il y a un moyen (c'est un moyen que je sache, peut-être qu'il y a une meilleure façon) utilise Exemple: p> boost :: algorithme :: split_regex code> pour scinder les séquences de caractères où les délimiteurs sont des expressions régulières.
Merci, cette solution fonctionne, mais elle nécessite un coup de pouce pour être construit. Actuellement, j'utilise des fichiers d'en-tête seulement.
#include
split_regex code> comme suggéré par @mythli va bien. Si vous ne voulez pas traiter avec regex, vous pouvez utiliser
ifind_all code> algo, comme indiqué dans ce exemple . Vous recevez
itérator_range code> (début / fin) de toutes les occurrences de votre délimiteur. Vos jetons sont entre eux (et au début et à la fin de la chaîne). p>
Merci, cette solution correspond parfaitement à mes besoins.
Si vous savez quels caractères sont composés de caractères (par exemple une phrase anglaise simple, avec uniquement en caractères), vous pouvez surmonter votre Word_DelImiter avec un symbole spécial, remplacez toutes les apparences de votre parole Délimiter avec elle et scindé par le spécial_symbol .
Par exemple, j'ai utilisé "%" ici: p> Vous devez être sûr que votre chaîne d'entrée n'aura jamais le symbole spécial de celui-ci, Sinon, cela ne fonctionnera pas bien! strong> p> p>
Pourquoi cela serait-il préférable à l'approche la plus simple que Mythli décrit déjà?
Ce n'est pas nécessairement préférable, c'est une autre façon de le faire. Personnellement, je préfère ne pas gérer les regexnes ...
Vous devriez pouvoir utiliser une combinaison de
égale code> et la valeur de chaîne à utiliser comme délimiteur, mais les spécificités m'ont éliminé en ce moment.
Dupliqué possible de Split sur la sous-chaîne