Trouver des mots après un mot-clé en python
Je veux trouver les mots qui apparaissent après un mot-clé (spécifié et cherché par moi) et imprimer le résultat. Je sais que je suis supposé utiliser des regex pour le faire, et je l'ai essayé aussi, comme ceci:
import re
s = "hi my name is ryan, and i am new to python and would like to learn more"
m = re.search("^name: (\w+)", s)
print m.groups()
Le résultat est juste:
"is"
Mais je veux obtenir tous les mots et signes de ponctuation qui vient après le mot "nom".
source d'informationauteur Ryan
Vous devez vous connecter pour publier un commentaire.
Au lieu d'utiliser les regexes vous pouvez simplement (par exemple) distinct de votre chaîne avec
str.partition(séparateur)
comme ceci:Vous avez à traiter avec l'inutile espaces séparément, s'.
Votre exemple ne fonctionnera pas, mais je comprends l'idée:
Cela permettra d'imprimer tous après le "nom" et jusqu'à la fin de la ligne.
Une autre alternative...
Au lieu de
"^name: (\w+)"
utilisation:Ce que vous avez utilisées pour votre sortie:
Ce que vous avez à utiliser (correspondre à tous les):
Vous pouvez simplement faire
Cela partagera votre chaîne de caractères et retourne une liste comme ça: ["salut mon', 'est ryan, et je suis python et souhaitez en savoir plus']
en fonction de ce que vous voulez faire cela peut aider ou pas.
Cela fonctionnera pour u : travaux de nom\s\w+\s(\w+)
Sans l'aide de regex, vous pouvez
bande de ponctuation (envisager de faire tout seul cas, y compris en terme de recherche)
diviser votre texte en mots individuels
trouver l'index de recherche
passer le mot à partir de la matrice de (
index + 1
pour word après,index - 1
pour word avant )Extrait de Code:
Pour plusieurs occurences, vous avez besoin d'enregistrer plusieurs indices: