我想将文本放入列表中,然后对每个项目进行一点解析,以便保留我真正想要的文本。
我目前正在使用:
with open("C:/text.txt" ,"rU") as input:
lines = [line.rstrip('\n') for line in input]
for line in lines:
#str(line)
regex = r"\:\s*\"(.*)\"\s{5}\d?"
try:
found = re.search(regex, line).group(1)
except AttributeError:
found ='nah'
print(found)
但它不起作用。总是去异常(exception)。当应用于定义的字符串时,它会起作用。处理列表项时有区别吗?
文本文件的结构如下:
提前致谢!
请您参考如下方法:
从您提供的图片可以清楚地看出,文本和数字之间有 3 个空格。
没有确切的文字,就不可能对这些符号进行分类,但很明显至少有一个。
所以,你需要修改你正在使用的正则表达式
r':\s*"(.*)"\s+'
此处,\s+ 匹配 1 个或多个空格。
请注意,如果您对整个匹配不感兴趣并且只需要第 1 组的值,则模式末尾的 \d? 不是必需的。
