我不能让我的正则表达式在我的Python3代码中像预期的那样工作。
我正在尝试解析一个文件,找到一个特定的模式(确切的模式是完全优化的)
我之所以这样做,是因为文件可能包含“”Total Optimization (Active)“”行和其他排列。我已经尝试了以下几行。无工作
PkOp = re.compile(r'Total Optimized\t\d')
PkOp = re.compile(r'Total Optimized\t\d')
PkOp = re.compile(r'Total Optimized\t[^(Active)]')我的基本代码(在这里进行了简化)只是打印出匹配的行。如果我让它正常工作,我就会选择我想要的数组项,比如
PkOp = PkOpArray[4]
App = re.compile(r'Appliance\s(Active)')
PkOp = re.compile(r"Total Optimized\t\d")
with open("SteelheadMetric2.txt","r") as f:
with open("mydumbfile.txt","w") as o:
for line in f:
line = line.lstrip()
matches = PkOp.findall(line)
for firestick in matches:
PkOpArray = line.split()
PkOp = PkOpArray
print(PkOp)大多数情况下,我会得到这样的错误
matches = PkOp.findall(line)
AttributeError: 'list' object has no attribute 'findall'如果我去掉斜杠字符,我可以让它显示带有“Total Optimization”或“Appliance”之类的行。我只是不能更具体地说我想要什么。
我遗漏了什么?如果我只是编译一个文本字符串,它工作得很好,但如果使用特殊的正则表达式,比如空格,制表符数字,它就失败了。正则表达式在notepad++中检出
发布于 2014-05-13 13:06:34
在编写PkOp = PkOpArray时,您已经将正则表达式更改为list。
如果您删除该行,并将您的print(PkOp)更改为print(PkOpArray),那么应该可以解决您的问题,前提是您的其余代码都是正确的。
https://stackoverflow.com/questions/23622961
复制相似问题