#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.html2. Это заводной файл, для которого мне нужно изменить. Вместо того, чтобы анализировать полный файл и продолжать, я использовал 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. Привет, Мартин, ранее была проблема с соглашением об именовании, поэтому у меня это не сработало. Поскольку я изменил его, он работает у меня. Спасибо 🙂