有没有正则表达式可以用于搜索和修改树形结构?我正在寻找简洁的迷你语言(如Perl正则表达式)。
这里有一个例子,可能会澄清我的需求。
<root>
<node name="1">
subtrees ....
</node>
<node name="2">
<node name="2.1">
data
</node>
other subtrees...
</node>
</root>
在上述树上可能进行的一项操作是“将节点2.1的子树移动到节点1的子树中”。操作的结果可能看起来像这样...
<root>
<node name="1">
subtrees ....
<node name="2.1">
data
</node>
</node>
<node name="2">
other subtrees...
</node>
</root>
应该支持搜索和替换操作,例如查找具有至少2个子节点的所有节点,查找数据以“a”开头并将其替换为“b”,如果子树具有至少2个其他同级节点,则替换等。
对于字符串,其中唯一的维度是字符串的长度,我们可以使用正则表达式执行上述操作(或它们的1D等效项)。我想知道是否有针对树的相应工具(而不是单个正则表达式,您可能需要编写一组转换规则,但这没关系)。
我想知道是否有一种简单的迷你语言(不是正则表达式本身,而是像正则表达式一样通过库等方式易于访问),可以用作Python库来执行这些操作?