我正在尝试使用Python 3.2解析生成的ARFF文件。目前,我正在尝试编写一个正则表达式,它将读取如下结构的行
@attribute sepallength {'\'(-inf-5.55]\'','\'(5.55-6.15]\'','\'(6.15-inf)\''}并返回其MatchObject ()函数返回的组
("sepallength", "'\\'(-inf-5.55]\\''", "'\\'(5.55-6.15]\\''", "'\\'(6.15-inf)\\''")换句话说,我正在尝试编写一个正则表达式,它将匹配遵循特定格式的一个或多个子字符串。
我当前的尝试如下所示(行是一个字符串):
matches = re.match(r"@attribute (\w+) {(?:([^,]+),?)+}", line)但是它的group()函数只返回与花括号中的模式匹配的最后一个子字符串:
('sepallength', "'\\'(6.15-inf)\\''")为什么第二个加号不能使表达式匹配满足我所写的非逗号规则的每个实例?怎样才能轻松地获得我想要的值?
发布于 2012-02-02 09:40:46
我想你要找的是findall http://docs.python.org/library/re.html#re.findall
https://stackoverflow.com/questions/9105906
复制相似问题