我正在尝试使用Python 3.2解析生成的ARFF文件。目前,我正在尝试编写一个正则表达式,它将读取结构类似
的行@attribute sepallength {'\'(-inf-5.55]\'','\'(5.55-6.15]\'','\'(6.15-inf)\''}
并返回一个MatchObject,其groups()函数返回
("sepallength", "'\\'(-inf-5.55]\\''", "'\\'(5.55-6.15]\\''", "'\\'(6.15-inf)\\''")
换句话说,我正在尝试编写一个正则表达式,它将匹配一个或多个遵循某种格式的子字符串。
我当前的尝试看起来像这样(行是一个字符串):
matches = re.match(r"@attribute (\w+) {(?:([^,]+),?)+}", line)
但是它的group()函数只返回与花括号内的模式匹配的最后一个子串:
('sepallength', "'\\'(6.15-inf)\\''")
为什么第二个加号不使表达式与满足我编写的非逗号规则的每个实例相匹配?如何轻松获得我想要的值?