Quel est le moyen le plus efficace de trouver l'un de plusieurs sous-chaînes en Python?

J'ai une liste de sous-chaînes, par exemple, ['cat', 'poisson', 'chien']. Dans la pratique, la liste contient des centaines d'entrées.

Je suis le traitement d'une chaîne, et ce que je suis à la recherche est de trouver l'indice de la première comparution de l'une de ces sous-chaînes.

À clarifier, pour les "012cat" le résultat est 3, et le '0123dog789cat" le résultat est 4.

J'ai aussi besoin de savoir qui sous-chaîne a été trouvée (par exemple, son index dans la sous-chaîne de la liste ou le texte lui-même), ou au moins la longueur de la sous-chaîne de correspondance.

Il est manifeste que la force brute des moyens pour y parvenir, je me demandais si il n'y a aucune élégante de Python/Regex solution pour cela.

Grâce,
Rax

  • C'est la liste de sous-chaînes constante? Je demande parce que, en utilisant les Regex type de solutions impliquent généralement certains precomputations de l'expression régulière (rsp. la liste de sous-chaînes dans votre cas). Serait-ce précalcul être amortis sur de nombreuses recherches?
InformationsquelleAutor Roee Adler | 2009-05-09