2013-07-24 2 views
0

Я пытаюсь заменить несколько сотен различных значений с одним значением: (пример) =Notepad ++ диапазон заменить

Line 115242: birth_date = "850.1.1"

Line 115317: birth_date = "851.1 0,1"

Line 115392: birth_date = "855.1.1" .... и т.д.

Я хочу, чтобы заменить каждый из них с: birth_date = "451.1.1"

Есть ли быстрый и простой способ сделать это с помощью функции замены? (Предположим, что я не знаю ни одного из терминов/акронимами/жаргоне)

Essencially, я пытаюсь заменить диапазон значений между:

birth_date = "600.1.1" и birth_date = "900.1. 1"

Это в питона

+0

Использовать Python для замены? – zhangyangyu

+0

Есть ли значения в файле, который находится за пределами указанного вами диапазона? – jpmc26

ответ

1

Вы можете быть в состоянии использовать регулярные выражения. Ограничение диапазона затрудняет работу, но с двумя разными заменами, я думаю, мы сможем это сделать. (Усложнение происходит из-за того, что вы не хотите заменять такие значения, как 900.4.3.)

  1. Резервное копирование файла, чтобы быть в безопасности.
  2. Откройте диалоговое окно «Заменить» и измените режим поиска на «Регулярное выражение».
  3. Введите birth_date="[678]\d\d\.\d+\.\d+" в разделе «Найти что:».
  4. Ввести birth_date="451.1.1" в «Заменить на:»
  5. Пресса Замените все.
  6. Изменить "Найти что:" на birth_date="900\.1\.1".
  7. Пресса Замените все.

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

Два разных регулярных выражения необходимы из-за диапазона. Первый ловит все, начиная с 6, 7, или 8 плюс любые две числовые цифры. Вторая обрабатывает последнее значение, которое мы хотим заменить, которое является первым из значений 900.

+0

Красивая, она сработала. хотя диапазон, который я указал, просто покрывал ВСЕ значения, не было более 900 или менее 600. (есть ли веб-страница, которая охватывает ПОЧЕМУ, что работает? Я хочу понять это, чтобы я мог использовать его для чего-либо, в будущем) –

+0

Без ограничения диапазона вы могли бы просто использовать 'birth_date =" \ d + \. \ d + \. \ d + "' для поиска. Вам нужно будет узнать о регулярных выражениях, если хотите понять. Регулярные выражения - это способ указания шаблонов, и тогда библиотека регулярных выражений может использовать этот шаблон, чтобы попытаться сопоставить строки. Они могут быть тяжело попасть, но это хороший знак, что вы спрашиваете «почему». Вот учебник, если он помогает: http://www.regular-expressions.info/tutorial.html. Возможно, вам захочется найти и другие ресурсы, особенно если это сначала не кажется явным. – jpmc26

+0

Цените это, спасибо –

Смежные вопросы