Python 2.7 - txt文件中的re.search无法正常工作

时间:2017-02-07 14:25:10

标签: python regex python-2.7

我在使用txt文件进行re.search时遇到了一些麻烦。在我的.txt文件中,我有一小段代码,它会将一个字符串写入名为“Python 2.7 - 通过PyCharm编写”的文件,该文件正常工作。然后,我想使用正则表达式来验证文件中是否存在“Written”一词。

这是我的代码:

FileOpen = open("default.txt", "r")
FileRead = FileOpen.read()
return_value = re.search(r"\bWritten\b", FileRead)
print return_value

在return_value打印之后,它找不到所需的单词并在执行时输出搜索失败:

None

如果我在分配给变量的简单字符串上尝试相同的代码,那么使用re.search i成功找到匹配:e:

string1 = "The fox jumped over the fence"
re.search(r"\bjumped over\b", string1)

执行时导致此输出::

sre.SRE_Match object...

但是一旦我开始通过读取.txt文件中的内容来尝试这个re.search(),那么它似乎总是以“无”失败。如果有人能告诉我哪里出错了,那将非常感激。谢谢。

1 个答案:

答案 0 :(得分:0)

您不需要正则表达式来执行此操作。你可以做得更轻松。

例如:

>>> f = open("test.txt", "r")
>>> fr = f.read()
>>> if "lorem" in fr:
...    print "true"
  

希望它有所帮助。

编辑:

时间测试员:

如果str在str:

t = Timer("""if 'lorem' in open('test.txt', 'r').read(): print 'true'""")
print t.timeit()
  

19.9183969498

正则表达式搜索:

t = Timer("""import re
print re.search(r'lorem', open('test.txt', 'r').read())
""")
print t.timeit()
  

31.3400061131

注意:timeit()函数重复100万次。

结论:“如果str in str”要快得多。