Я работаю на некоторые автоматизации с использованием Дженкинс, где у меня есть схема и детали БД хранится какИтерация через массив хэшей в скрипте
[schema1:db1, schema2:db2]
хранится в ANT собственности ${schemaValue}
<propertycopy name="schemaValue" from="${SchemaVariable}"/>
Теперь я пытаюсь Переберите этот массив хэшей, чтобы выполнить соединение, я попытался с
<for param="theparam" list="${schemaValue}">
<sequential>
<echo message="param: @{theparam}"/>
</sequential>
</for>
Но это рассматривает ${schemaValue}
как String, а не массив,
Помощь по этому вопросу.
EDIT
Как было предложено @ AR.3, я попытался с
<propertyregex override="yes" property="paramValue" input="@{theparam}" regexp=".+:([^\]]+)]?" replace="\1"/>
<echo message="paramValue: ${paramValue}"/>
<propertyregex override="yes" property="paramKey" input="@{theparam}" regexp="[?([^\[]+):]" replace="\1"/>
<echo message="paramKey: ${paramKey}"/>
$ {paramValue} дает мне DB1 и DB2 правильно
$ {} paramKey бросает меня error
- Можно ли получить значения например schema1: db1, а затем sch2ma2: db2. Потому что здесь я получаю динамические имена схем с именем базы данных. – useranon
@ Jasmine Да, просто измените приведенное выше регулярное выражение в соответствии с вашими потребностями. В этом случае вы можете попробовать '[? ([^ \ [] +: [^ \]] +)]?'. – manouti
Я попытался с "([^ \ [] + :)", чтобы найти ключ $ {paramKey}, но он не отображается как ожидалось. – useranon