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

时间:2017-03-21 05:14:26

标签: 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,

在上面的例子中,我使用了" 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.

帮助解决这个问题。

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

2 个答案:

答案 0 :(得分:0)

您直接替换正则表达式中的变量。而不是尝试做:

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

并且,raw_input

中的input函数也使用book=input("Enter the book name")

答案 1 :(得分:0)

我认为你使用的是python 2.7

在python 2.7中使用raw_input而不是input。 如果您使用了输入,则会抛出错误。

book=raw_input("Enter the book name")

如果同样的错误仍然存​​在,请与我们联系。