2016-07-28 3 views
3

Ich versuche zu zeigen, wie viele Wörter in einer TXT-Datei mit Python und Regex übereinstimmen, aber anstatt den Begriff 'wie' möchte ich verwenden Variable ‚Worte‘Wie eine ganze Wortübereinstimmung in Python mit einer Variablen in der Regex zu inkrementieren

text = 'I like and love green grass' 
positive_words = positive_words=open("positive.txt").read() 

words = text.split(' ') 

if re.search(r'\blike\b',positive_words): 
    positive_counter=positive_counter+1 
print positive_counter 

in meiner txt-Datei ich habe die Worte ‚wie‘ und ‚Liebe‘ so positive_counter 2 sollte gleich .. wie würde ich Worte als Variable an Stelle von ‚wie‘ verwenden? Das funktioniert jetzt aber einfach nicht wissen, wie die Variable Worte aus dem regex Sicht

+0

Möchten Sie positive_Wörter im Text suchen oder umgekehrt? Wie es geschrieben ist, suchen Sie nach "wie" in "positive_words" und nicht innerhalb von "words" – HolyDanna

+0

Warum ordnen Sie zweimal "positive_words" zu? – Roadmaster

+0

ja Ich versuche, die Worte in "Text" zu verwenden, um Wörter in positive_words zu vergleichen –

Antwort

3
text = 'I like and love green grass' 
positive_words = positive_words=open("positive.txt").read() 

words = text.split(' ') 

for word in words: 
    if re.search(r'\b' + word + r'\b',positive_words): 
     positive_counter=positive_counter+1 
print positive_counter 

gerade alle Wörter in Text Looping.

1

zu übernehmen, sollte diese Arbeit:

re.search(r'\b(I|like|and|love|green|grass)\b', positive_words) 

Um die Wieder von Ihrem Textvariablen (beachten Sie, bauen Ich bin diese aus dem Speicher Codierung, müssen Sie es etwas zwicken):

regex = r'\b(%s)\b' % "|".join(words) 
re.search(regex, positive_words) 
+0

dann müssen Sie positive Zähler um eins für jedes Spiel zu erhöhen –

+0

In der Tat, aber sieht aus wie das OP ist schlau genug, um das herauszufinden; Ich schlage nur einen Ausweg vor, nicht eine ganze Lösung zu kodieren :) – Roadmaster

Verwandte Themen