2016-07-28 9 views
3

pythonとregexを使ってtxtファイル内で一致する単語の数を表示しようとしていますが、 'like'という用語を使用する代わりに変数の言葉「私のtxtファイル内正規表現で変数を使用してpythonで単語全体の一致を増やす方法

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 

私はpositive_counterので、 'のような言葉と「愛」を持っているが、私が代わりに「LIKE」の変数として言葉を使うだろうか。2に等しくなければなりませんか?これが機能するようになりましたが、ちょうどビューの正規表現の点から、変数の言葉に

+0

テキスト内に存在するpositive_wordsやそれ以外の方法で検索しますか?書かれているように、 'positive_words'の中で' like'を探していて、 'words'の中では探していません。 – HolyDanna

+0

なぜ' positive_words'に2回割り当てていますか? – Roadmaster

+0

yes「text」の単語を使って、positive_wordsの単語に一致させようとしています –

答えて

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 

ただのテキスト内の単語のすべてをループします。

1

を組み込む方法がわからない、これは動作するはずです:

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

私はあなたのテキスト変数(ノートから再構築するにはメモリからこれをコーディング、あなたは)ややそれを微調整する必要がある場合があります

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

次に、一致ごとに正のカウンタを1つずつ増やす必要があります –

+0

実際、OPはそれを把握するのに十分なほどスマートです。私は方法を提案しているだけで、ソリューション全体をコーディングしているわけではありません:) – Roadmaster

関連する問題