可以说我有一个这样的输入文件:
#Backup TOC
boot.tar.gz /boot/
#Filesystems
/boot /dev/mapper/VolGroup-lv_root xfs
#Devices
/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:0-part1 PHY /dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:0
#UnhandledFS
/var/
/var/log
/var/log/audit
/var/tmp
我想提取每个#header之间的内容(最后一个#UnhandledFS可以忽略),提取后我必须检查是否有任何可用的条目。
下面的代码我用来提取两个#header之间的内容。但是,这里不再重复
lines = open("./input").readlines()
re.compile('#\w+(.*?)#\w+', re.DOTALL | re.M).findall(''.join(lines))
参考方案
正则表达式的问题在于它消耗了“ end”头,从而导致它跳过#Filesystems
并弄乱了您的匹配项。
您需要的称为"lookahead"-这是一种匹配模式而不消耗模式的方法。
这是一个适合您的正则表达式:
re.compile(r'#[^\n]*\n([^#]*)(?=#)', re.DOTALL | re.M).findall(''.join(lines))
它还解决了匹配项中包含带有空格的标头的问题,例如示例中的第一个标头:单词TOC将成为匹配项的一部分。
但是,如果您希望对正则表达式进行最小修复,那么这也将起作用(TOC部分除外):
re.compile('#\w+(.*?)(?=#\w+)', re.DOTALL | re.M).findall(''.join(lines))
在返回'Response'(Python)中传递多个参数 - python我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…
Python exchangelib在子文件夹中读取邮件 - python我想从Outlook邮箱的子文件夹中读取邮件。Inbox ├──myfolder 我可以使用account.inbox.all()阅读收件箱,但我想阅读myfolder中的邮件我尝试了此页面folder部分中的内容,但无法正确完成https://pypi.python.org/pypi/exchangelib/ 参考方案 您需要首先掌握Folder的myfo…
re.findall不返回全场比赛吗? - python我有一个包含一堆字符串的文件,例如“ size = XXX;”。我第一次尝试使用python的re模块,并且对以下行为感到有些困惑:如果我在正则表达式中使用管道作为“或”,我只会看到返回的匹配项。例如。:>>> myfile = open('testfile.txt','r').read() >…
Python GPU资源利用 - python我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…
R'relaimpo'软件包的Python端口 - python我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。