在文本文件中查找字符串在python中使用re.match函数
这是到目前为止我的代码。我找不到重新匹配的问题在文本文件中查找字符串在python中使用re.match函数,python,Python,这是到目前为止我的代码。我找不到重新匹配的问题 import os import re folderpath = 'D:/Workspace' typeOfFile = [".c", ".C", ".cpp", ".CPP"] for dirname, dirnames, filenames in os.walk(folderpath): for filename in filenames: if filename.endswith(tuple(typeOfFile)
import os
import re
folderpath = 'D:/Workspace'
typeOfFile = [".c", ".C", ".cpp", ".CPP"]
for dirname, dirnames, filenames in os.walk(folderpath):
for filename in filenames:
if filename.endswith(tuple(typeOfFile)):
data= open(os.path.join(dirname, filename), "r").readlines()
m= re.match(r'author*.[^:=]*[:=]*(.[^\n]+)', data, re.DOTALL)
if m:
author = m.group(1)
else:
author = 'unknown'
print "author is this case is:", author, "in file", filename
我想在文本文件中搜索字符串作者。阅读:
如果字符串开头的零个或多个字符与正则表达式模式匹配,则返回
对应的MatchObject实例
改为使用。使用搜索而不是匹配r'author*[^:=]*[:=]*.[^\n]+'我想这里的问题是您试图匹配的文本是什么样子的?那个正则表达式真的很奇怪。。。r*-你真的想匹配任意数量的r,后跟一个字符吗?你不是在使用正则表达式。if filename.endswithtupletypeOfFile仅在文件名以.c.c.cpp.cpp结尾时为true。请尝试类似于if os.path.splitextfilename[1]。在“.c”和“.cpp”中放低一点。@tdelaney:为什么不呢?OP还需要.read来获得一个大字符串,而不是.readlines。我感觉到,在question@JonClements-他还没有进入if声明-下一个例外!
re.match(pattern, string, flags=0)