在python中使用正则表达式进行用户输入匹配

在python中使用正则表达式进行用户输入匹配,python,Python,在上面的示例中,我使用“Python”作为要搜索的文本。但是我需要用户输入单词并进行搜索 例如: 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 >&

在上面的示例中,我使用“Python”作为要搜索的文本。但是我需要用户输入单词并进行搜索

例如:

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,
此程序正在运行并询问“输入图书名称”,当输入图书名称(例如:digital)时,返回错误,说明
名称“digital”未定义。

帮帮忙


如何从用户处获取字符串并在文件中搜索以找到匹配项。

您正在直接替换正则表达式中的变量。不要那样做,试着做:

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,

另外,在
book=input(“输入书名”)中使用
raw\u input
进行
input
功能

我想您使用的是python 2.7

在Python2.7中,使用
raw_input
而不是
input
。 如果您使用了输入,那么它将抛出错误

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

如果相同的错误仍然存在,请告诉我。

使用
raw\u input
而不是
input
,因为后者试图将输入作为Python代码进行计算。您使用的是Python 2.7还是Python 3?在Python2.7中,使用``raw_input`而不是
input
book=raw_input("Enter the book name")