Существуют ли эквиваленты регулярных выражений для поиска и изменения древовидных структур? Яркие мини-языки (например, perl regex) - это то, что я ищу.Regex для древовидных структур?
Вот пример, который может уточнить, что я ищу.
<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-х детей, найти все узлы, чьи данные начинаются с «а» и заменить его «Ъ», если поддеревьям по крайней мере 2 других брата и т. д. должны поддерживаться.
Для строк, где единственное измерение находится по всей длине строки, мы можем выполнять многие из вышеперечисленных операций (или их 1D эквивалентов) с использованием регулярных выражений. Интересно, существуют ли эквиваленты для деревьев. (вместо одного регулярного выражения вам может потребоваться написать набор правил преобразования, но это нормально).
Я хотел бы знать, есть ли какой-нибудь простой мини-язык (не регулярное выражение per.se, а то, что доступно как регулярное выражение через библиотеки и т. Д.). для выполнения этих операций? Предпочтительно, как библиотека питона.
Думая о том, как синтаксис этой вещи может быть ... :) –
Mmh, можете ли вы более подробно рассказать о том, что у вас есть и что должно делать регулярное выражение? – akappa
Это должно быть более конкретно - вы разбираете XML или что? –