我的输入字符串是:
{(metrics)(metrics)[(mapper_init)(mapper_init)(1)][(mapper_input_lines)(mapper_input_lines)(102571)]}
当我运行以下代码时:
metric_matches = re.findall('(\[\(\w+\)\((\w+)\)\((\d+)\)\])+', metrics_line)
print "Processing: %s" % metrics_line
print metric_matches
我得到:
Processing: {(metrics)(metrics)[(mapper_init)(mapper_init)(1)][(mapper_input_lines)(mapper_input_lines)(102571)]}
[('[(mapper_input_lines)(mapper_input_lines)(102571)]', 'mapper_input_lines', '102571')]
为什么两个组都不匹配?我正在尝试使其匹配:
[(__not-important__, 'mapper_init', 1), (__not-important__, 'mapper_input_lines', '102571')]
这是解决方法(我在上一本中有错别字):
metric_matches = re.findall(r'\[\((\w+)\)\((\w+)\)\((\d+)\)\]', metrics_line)
结果将是:
[('mapper_init', 'mapper_init', '1'), ('mapper_input_lines', 'mapper_input_lines', '102571')]
如您所见,括号留在那里,但+
已被删除。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句