Comment faire correspondre un mot dans un fichier texte à l'aide de python?
Je veux de recherche et correspondent à un mot dans un fichier texte.
with open('wordlist.txt', 'r') as searchfile:
for line in searchfile:
if word in line:
print line
Ce code renvoie même les mots qui contiennent des sous-chaînes du mot cible. Par exemple, si le mot est "là" alors, la recherche renvoie "y", "donc", "ainsi", etc.
Je veux le code pour renvoyer uniquement les lignes qui contiennent "là-bas". Période.
OriginalL'auteur Apps | 2011-03-08
Vous devez vous connecter pour publier un commentaire.
séparer la ligne en jetons:
if word in line.split():
Hey merci @jcomeau_ictx . Il a travaillé 🙂
vous êtes les bienvenus. mais comme l'autre gars dit, apprendre regexes. ça prend du temps, mais ça en vaut la peine. pydoc re
OriginalL'auteur jcomeau_ictx
La
re.search
fonction analyse de la chaîne deline
et renvoie true s'il en trouve l'expression régulière définie dans le premier paramètre, ignorant la casse avecre.I
. Le^
caractère signifie "début de ligne" alors que l'$
caractère signifie "la fin de la ligne". Par conséquent, la fonction de recherche ne retourne true si elle correspond à il précédé le début de la ligne, et suivie par la fin de la ligne, aka isolée sur son propre.ne serait-ce pas le même problème? peut-être que '^* y *$' serait mieux?
Il est difficile de répondre à tous les cas de coin sans aucune indication de ce que l'entrée ressemble.
\bthere\b
peut-être mieux que^there$
.Le fichier d'entrée contient deux colonnes: par exemple - 50677 miné
OriginalL'auteur Reznor
Vous pouvez toujours utiliser des regex, quelque chose le long des lignes de:
\sthere\s
- tout l'espace, suivi par 'y' suivi d'un espacere.I
- des moyens sensibles à la cassere.M
- n'a pas vraiment d'importance dans ce cas (puisque lignes seulement 1 \n)\b
correspond à une limite de mot, sans consommer de caractères comme\s
.OriginalL'auteur skorks
Vous devez utiliser une expression régulière. Le expression régulière howto de l'Python docs pourrait être un bon endroit pour commencer.
OriginalL'auteur Velociraptors
Rechercher le module re (expressions régulières). re.de recherche avec les regex ' il ' est ce que vous voulez.
OriginalL'auteur