Je ne sais pas si vous avez besoin de nouveau pour cela, suivant devrait suffire:
Usage du découpage:
>>> bigstr = 'What are you saying?'
>>> smallstr = 'you'
>>> bigstr.split(smallstr)
['What are ', ' saying?']
>>> words = bigstr.split(smallstr)
>>> len(words[0])
9
>>> len(words[1])
8
En utilisant l'index:
>>> bigstr.index(smallstr)
9
>>> len(bigstr) - bigstr.index(smallstr) -len(smallstr)
8
Aussi, vous remarquez que distance
est 9 et non 8 parce qu'il compte les espaces - 'What are '
Vous pouvez toujours utiliser une bande pour supprimer des espaces, si cela vous concerne.
Si vous voulez continuer à utiliser re: Ensuite, utilisez la recherche
>>> import re
>>> pattern = re.compile(smallstr)
>>> match = pattern.search(bigstr)
>>> match.span()
(9, 12)
>>>
+1, mais il semble vouloir la distance de l'extrémité de l'aiguille à la fin de la haystack, pas du début de la botte de foin au début de l'aiguille. Heureusement, c'est facile: 'len (bigstr) - len (smallstr) - bigstr.index (smallstr)'. –
Ces deux réponses comptent la distance depuis le début de la chaîne, pas jusqu'à la fin de la chaîne. C'est pourquoi vous obtenez 9 et non 8. – jchl
@jchl @Karl Knechtel: Merci beaucoup, j'ai mal compris la partie distance. J'ai ajouté les modifications. – pyfunc