2016-10-12 11 views
0

私はPythonで自動化していますが、練習プロジェクトの1つに問題があります。python regex subが動作しない

第8章では、txtファイルを読み込んで特定の単語を特定し、置換を促すプログラムを作成し、見つかった単語を置き換えるプロジェクトがあります。私は何らかの理由で代用に問題があり、理由を理解できません。

import re, os 

# Convert text file to string 
textString = open('C:\\Users\\me\\Desktop\\madlib.txt', 'r') 
content = str(textString.read()) 
i = 2 

while i == 2: 
    #Search string for expressions ADJECTIVE, NOWN, ADVERB, and VERB. 
    keyRegex = re.compile(r'ADJECTIVE|NOUN|ADVERB|^VERB') 
    keyword = keyRegex.search(content) 

    #Upon finding keyword, using if statements test the type of keyword 
    if keyword.group() == 'ADJECTIVE': 
     print('Please enter an adjective:') 
     replacement = str(input()) 
     keyRegex.sub(replacement, content) 
     print(content) 
----snip---- 

だから私は、最初の部分でファイルを読み込む(に行くと、それを終了する方法を持っている)whileループを設定し、キーワードの検索を開始。たとえば、ADJECTIVEという単語が見つかった場合は、形容詞の入力を要求します。それから私は交換品を入力し、これは物事が消える場所です。

文字列 'content'のADJECTIVEという単語は実際には置き換えられません。どうしてこれなの?

ありがとうございました。

答えて

0

re.sub()は、格納していない新しい文字列を返します。他の多くのPythonメソッドと同様に、変数を変更したい場合は、変数に新しい結果を格納する必要があります。

content = keyRegex.sub(replacement, content) 
関連する問題