目前苦于作家布洛克试图想出一个优雅的解决这个问题的办法。在
以下面的例子为例:
{
"data": {
# Some information about field 1
# on multiple lines
"field1": "XXXXXXXXXX",
# Some more info on a single line
"field2": "XXXXXXXXXXX",
"field3": "#this would be ignored"
}
}
从上面来看,我希望将代码注释作为一个组而不是单独提取。如果一行正好在另一行后面加上注释,就会发生这种分组。注释总是以空格开头,后跟一个#。在
示例结果:
^{pr2}$我可以跳过这些行并在代码中求值,但如果可能,最好使用正则表达式。如果您觉得正则表达式不是解决此问题的正确方法,请解释原因。在
小结:
感谢所有人提交了各种解决方案来解决这个问题,这是一个很好的例子,说明了SO社区能有多大的帮助。我将花一个小时自己的时间回答其他问题,以弥补在这方面花费的集体时间。在
希望这条线将来也能对其他人有所帮助。在
纯粹使用regex是不可能的,但是你可以用一行代码来逃避)
输出:
^{pr2}$您可以使用deque保留两行,并添加一些逻辑将注释分区为块:
印刷品:
^{pr2}$您可以将
re.findall
与以下regex一起使用:对于打印,您可以:
^{pr2}$但是对于多于2行的注释行,您可以使用
itertools.groupby
:结果:
相关问题 更多 >
编程相关推荐