У меня есть большой файл с сотнями блоков текста (части вызовов метода C++), которые напоминают блок Current
ниже, и я хочу использовать Xcode's Regular замена Выражение для изменения каждого из них, чтобы походить на Desired
блок ниже, захватывая значения 0.89f, имя, 0,1, 0,5 и 2.Как я могу использовать «Найти и заменить» Xcode на многострочных блоках текста
Обратите внимание, что оба блока начинаются и заканчиваются остряк h new Zapp
и //d.p.’s to show
соответственно, чтобы сэкономить на загрузке ручного редактирования. Я хочу использовать поиск и замену регулярных выражений.
Основная проблема, с которой я сталкиваюсь, - это вид блоков в размере multi-line
. Если мы будем игнорировать, что на данный момент, я почти выполнил поиск и замену на следующих single-line
блоков:
ток:
new Zapp (0.89f // defaultParameterValue , "A name" // name , 0.1 // min , 0.5 // max , 2 // d.p.'s to show
Желаемая:
new Zapp (NormalisableRange<float> (0.1, 0.5) ,NormalisableRange<float> (0.1, 0.5).convertTo0to1(0.89f) , "A name" // name , 2 // d.p.'s to show
Найти и заменить:
Найти: Zapp\s+\((.*)\s+// defaultParameterValue\s+,\s+"(.*)"\s+\/\/\s+name\s+,\s+(.*)\s+\/\/\s+min\s+,\s+(.*)\s+\/\/\s+max\s+,\s+(.*)\s+\/\/\s+d.p.'s
Заменить: Zapp (NormalisableRange<float> ($3, $4) ,NormalisableRange<float> ($3, $4).convertTo0to1($1) , "$2" // name , $5 // d.p.’s
Это однострочных решения имеет проблемы, дополнительное белое пространство видно после захвата 1 (1 пробел), захват 3 (4 пробела) и захват 5 (3 пробела), в противном случае он хорошо работает:
Я попытался устранить пробелы из захвата 1 (0.89f), захвата 3 (0,1) и захват 5 (2) с использованием [^\s]+
, но это не помогло, так что если кто-нибудь может указать причину за это я был бы благодарен.
я могу, для чего это стоит, искать upper
и lower
с помощью \s+
, но я не могу поставить все это вместе, чтобы достичь желаемого результата.
Я видел несколько старых сообщений в Интернете, которые предполагают, что эта задача может оказаться невозможной с помощью Xcode. Если это правда, может ли кто-нибудь предложить альтернативный подход, который выполнит эту работу?
Оба ваши ответы удовлетворяют вопрос в целом, поэтому я буду отмечать это как правильный ответ. Фактически вставка кода в поле поиска и замены Xcode не соответствует тексту, но это, по-видимому, является ограничением для многострочных блоков в Xcode. Я сам предоставил ответ, используя AppCode, который позволяет использовать многострочный поисковый запрос, чтобы помочь другим, которые могут использовать AppCode. Спасибо за ваш ответ, я кое-что узнал. –