2017-03-21 7 views
0
import re 
path ='C:\\Users\\username\\Desktop\\name.txt' 
shakes = open(path, 'r') 
love = open("store.txt", "w") 

for line in shakes: 
    if re.match("**(.*)(P|P)ython(.*)**", line): 
     print >> store, line, 

上記の例では、私は検索するテキストとして "Python"を使用しました。しかし、私は単語と検索を入力するユーザーが必要です。例えばPythonでの正規表現を使用したユーザー入力の一致

:書籍名を入力したとき

import re 
book=input("Enter the book name") 
path ='C:\\Users\\username\\Desktop\\name.txt' 
shakes = open(path, 'r') 
love = open("store.txt", "w") 

for line in shakes: 
    if re.match(book, line): 
     print >> store, line, 

このプログラムは、(例:デジタル)、実行していると、「書籍名を入力してください」求めている、それはname 'digital' is not defined.

ヘルプを示すエラーを返しますこれとともに。

文字列をユーザーから取得してファイル内で検索し、一致するものを見つける方法。

+0

'input'の代わりに' raw_input'を使用します。後者は入力をPythonコードとして評価しようとします。 – ForceBru

+0

あなたはpython 2.7またはpython 3を使用していますか? Python 2.7では、 'input'の代わりに' 'raw_input''を使用してください – kuro

答えて

0

input機能にraw_inputを使用し、

if re.match("**(.*)"+book+"(.*)**", line): 

をそして:その代わりにやってみてください。 入力を使用した場合、エラーが発生します。

book=raw_input("Enter the book name") 

同じエラーが続く場合は教えてください。

+0

ありがとう:-)。出来た。 – Uma

0

あなたは正規表現で変数を直接代入しています。また、私はあなたのpython 2.7を使用raw_inputの代わりinputでのpython 2.7

を使用していると思うbook=input("Enter the book name")

+0

ありがとう:-)。ソリューションはうまくいった:-) – Uma

関連する問題