正则表达式匹配Python中的外括号 - python

我有一些用嵌套花括号格式化的f5配置数据字符串,如下所示:

profiles {
    /Common/http { }
    /Common/serverssl {
        context serverside
    }
    /Common/tcp { }
    SOME_CRED_MGMT.DOMAIN_some_date {
        context clientside
    }
}
rules {
    /Common/X-FORWARDED-FOR
}
snat {
    pool SOME_SNAT.POOL
    type snat
}

我想从上面的组中获得类似以下的列表:

some_list = ["profiles{..}", "rules{..}", "snat{..}"]

搜索后,我发现了类似的内容(在JS中):

profiles {([\s\S]*?)^}

并且也类似(在PCRE中):

({((?(?={)(?R)|[^}])*)})

但是它们不适用于Python。如何在Python中做类似的事情?

参考方案

您可以使用JS正则表达式。您只需要对其进行一点编辑。

.+ {[\s\S]*?^}

我将profile替换为.*,以使其不仅与profile { ... }匹配。我也使该组不被捕获,因为您不关心花括号内的内容。您只想要整个事情。

然后,您可以调用findall以获得所需的列表:

matches = re.findall(r".+ {(?:[\s\S]*?)^}", test_str, re.MULTILINE)

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python-crontab模块 - python

我正在尝试在Linux OS(CentOS 7)上使用Python-crontab模块我的配置文件如下:{ "ossConfigurationData": { "work1": [ { "cronInterval": "0 0 0 1 1 ?", "attribute&…

Python exchangelib在子文件夹中读取邮件 - python

我想从Outlook邮箱的子文件夹中读取邮件。Inbox ├──myfolder 我可以使用account.inbox.all()阅读收件箱,但我想阅读myfolder中的邮件我尝试了此页面folder部分中的内容,但无法正确完成https://pypi.python.org/pypi/exchangelib/ 参考方案 您需要首先掌握Folder的myfo…