Как проверить начало строки с помощью задачи Ant replaceregexp

#regex #ant

#регулярное выражение #ant

Вопрос:

У меня есть файл, в котором я хочу заменить старое значение новым значением. Внутри моего файла у меня есть следующее содержимое:

Я хочу заменить значение myList каким-либо другим значением. Для этого я использовал задачу «replaceregexp» в Ant. Для этого я использовал следующий код, и это также проверит наличие закомментированного myList.

 //myList="a","b","c","d","e";
myList="a","b","c","d","e";

<replaceregexp file="myfilename" match="myList=(.*)" replace="myList="somevalue" />
  

Я хочу знать, как я могу проверить начало строки. Это означает, что оно должно заменяться, только если строка начинается с «myList», а не если строка начинается с «//myList».

Как я могу это сделать?

Комментарии:

1. Вам нужно сохранить прокомментированную строку? Я предлагаю просто использовать propertyfile задачу Ant для изменения значений свойств. ant.apache.org/manual/Tasks/propertyfile.html

2. Это заводной файл, для которого мне нужно изменить. Вместо того, чтобы анализировать полный файл и продолжать, я использовал replaceregexp.

Ответ №1:

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

 <replaceregexp file="myfilename" match="^myList=(.*)" byline="true" replace="...
  

Обратите внимание, что вам понадобится byline="true" в противном случае весь файл будет обрабатываться как одна строка для обработки.

Комментарии:

1. Если я также использовал символ ^, это вносит изменения только в прокомментированную строку. //myList=»a», «b»,»c», «d»,»e»; myList=»a», «b», «c», «d», «e»; Я задал параметр для добавления значения после «e» в раскомментированном myList. Но оно добавляет новое значение в прокомментированный myList.

2. Привет, Динеш. Это может не сильно помочь, но «это работает для меня». Я добавил примечание о построчной обработке, которое может помочь. Еще одна вещь, которую я предлагаю, это то, что, возможно, ваш файл не был «сброшен», чтобы в нем была начальная строка комментария перед повторным запуском; т. Е. Комментарий был сопоставлен и обработан при запуске Ant до добавления ^ в файл сборки.

3. Привет, Мартин, ранее была проблема с соглашением об именовании, поэтому у меня это не сработало. Поскольку я изменил его, он работает у меня. Спасибо 🙂