gpt4 book ai didi

regex - 帮助在类似 C 的语言中提取匹配花括号之间的文本 block

转载 作者:行者123 更新时间:2023-12-02 02:27:08 26 4
gpt4 key购买 nike

我有一些我为 HDF5 文件格式制作的文档,它是用 GraphViz 点语言编写的。 (这是一种带有很多大括号的类 C 语言。)这个主文件包含许多这样的元素:

subgraph cluster_clustername { 
...
lots of stuff including more curly braces spanning multiple lines
...
}

我想根据集群名称提取这段文本。 (我想单独创建这些子图的图,而不是包含所有内容的超大图。每个子图簇都是一个单独的 HDF5 文件,它们通过 HDF5 外部软链接(soft link)连接。)

应该有一种方法来提取这个所需的大块文本(一个练习,通过嵌套在多行中匹配第一个 { 在一些特定的文本模式之后和结束}。这似乎应该是一个相对常见的任务,因为C 和类 C 语言的流行程度。

在我看来,实现这一目标的最佳候选工具是:

awk

python

gvpr - graphviz 提供的图形流编辑器(但这对其他人没有帮助,说 C 程序员有同样的问题并且网络上存在的例子很少并且语法令人困惑)

安全

目前我维护主文件,然后使用 M-x ediff-regions-linewise 更新 Emacs 中的每个派生文件,但我需要一个自动化的(这样我可以使用 Make 来构建文档文件)和生成派生文件的可靠方法.上面我唯一经验不足的工具是 sed,但由于模式很复杂并且跨越多行,我认为像 awk 或 python 这样的工具可能更适合这项任务。

事实上,我在 awk 中尝试了一种类似于引用计数的技术,但我在理解 awk 的一些更微妙的行为时遇到了问题,并且过去只真正使用过 awk one liner。

非常感谢您提供的任何帮助。-Z

最佳答案

使用 Perl,您将使用 Text::Balanced module .它可以在平衡定界符之前、内部和之后为您返回文本。

关于regex - 帮助在类似 C 的语言中提取匹配花括号之间的文本 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5491912/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com