Skip to main content
 首页 » 编程设计

python之用于解析列表项的正则表达式

2025年02月15日26zhenyulu

我想将文本放入列表中,然后对每个项目进行一点解析,以便保留我真正想要的文本。

我目前正在使用:

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? 不是必需的。