如何使用Python re模块从文本文件中提取A前缀属性名
Python使用re模块提取属性名方案
原有代码问题
- 仅调用一次
readline()仅读取了文件第一行头部内容,没有读取后续属性行 - 循环逻辑错误遍历了第一行字符串的单个字符,而非遍历文件所有行
实现代码
我们可以通过正则匹配行首A开头、带数字且紧跟冒号的内容实现需求,适配任意数量的A0~An属性:
import re # 读取文件内容 with open('file.txt', 'r', encoding='utf-8') as f: file_content = f.read() # 正则匹配所有符合规则的属性名 attr_names = re.findall(r'^A\d+(?=:)', file_content, flags=re.MULTILINE) # 按要求格式输出 print(', '.join(attr_names))
正则说明
^匹配行起始位置,搭配re.MULTILINE参数会对每一行单独校验A\d+匹配大写字母A后接1位及以上数字的内容(?=:)正向预查规则,要求匹配内容的下一个字符必须是冒号,避免误匹配文件其他位置的A开头字符串
测试效果
针对你给出的两个样例文件,运行代码会分别输出A0, A1, A2, A3和A0, A1, A2, A3, A4, A5,完全符合需求。
内容的提问来源于stack exchange,提问作者Dev
相关产品推荐
相关产品推荐

