ANT: регулярное выражение для сравнения по многострочному свойству - PullRequest
0 голосов
/ 11 мая 2018

В задаче Apache Ant я пытаюсь сравнить вывод этой команды:

 <exec executable="svn" outputproperty="svnTest">
      <arg line="status ${GUI_BASE} -u -q" />
 </exec>

с этим регулярным выражением (я хочу проверить, есть ли строка, которая не начинается с M)

^(?!M).+/gm

значение svnTest равно

M             3234   C:\path\to\some\file1.txt
M             3234   C:\path\to\some\file2.txt

, но результат следующего условия:

<regexp id="upd" pattern="^(\*).+/gm" />
        <condition property="matches" value="true" else="false">
            <matches string="${svnTest}">
                <regexp refid="upd" />
            </matches>
        </condition>

равен false

как мне заставить это работать?

1 Ответ

0 голосов
/ 11 мая 2018

Похоже, что вы хотите получить строки, где первый символ не M.

Вы можете использовать

pattern="^[^M].*"

Здесь

  • ^ - соответствует началу строки
  • [^M] - класс отрицанных символов, который соответствует любому символу, но M
  • .* - любые символы 0+ до концалинии.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...