Шаблон для соответствия только «дочерним элементам» определенных элементов

Я хотел бы иметь возможность иметь шаблон, который соответствует только выражениям, которые (альтернативно: не являются) дочерними элементами некоторых других элементов.

Для Например, шаблон для соответствия всем спискам List за пределами объекта Graphics :

{ {1,2,3}, Graphics[Line[{{1,2},{3,4}}]] }

Этот шаблон будет соответствовать {1,2,3} , но не {{1,2}, {3,4}} .

Есть относительно простые способы извлечь выражения, соответствующие этим критериям, но шаблоны предназначены не только для извлечения, но и для замены , который является моим основным вариантом использования здесь ( ReplaceAll ).

Знаете ли вы какие-либо простые, краткие и общие способы сделать это?

Это возможно ли это вообще сделать с помощью простых шаблонов?

8
задан Szabolcs 23 June 2011 в 09:32
поделиться