Форум программистов, компьютерный форум, киберфорум
Софт: Текстовые редакторы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 7
1

Как в Notepad++ при поиске не учитывать часть текста?

07.06.2020, 13:23. Просмотров 1058. Ответов 12

Помогите пожалуйста в Notepad++ правильно задать поиск.
В тексте нужно найти фразы:

Прямоугольная плитка чёрного цвета
Прямоугольная плитка зелёного цвета
Прямоугольная плитка красного цвета
Прямоугольная плитка жёлтого цвета
Прямоугольная плитка синего цвета

Чтобы третье слово в поиске не учитывалось.
Чтобы в поиск подставлять что-то вроде: Прямоугольная плитка ****** цвета

Но чтоб все найденные фразы, можно было заменить на:

Прямоугольная плитка серебристого цвета

Заранее спасибо, Хороший Человек.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2020, 13:23
Ответы с готовыми решениями:

При поиске учитывать возможные опечатки в словах
Здравствуйте! подскажите, пож-ста, как.

Notepad++ заморозить часть текста
Как заморозить часть текста, чтобы при нажатии он не выделялся и курсор переходил на ввод нового...

Если в LIKE передается строка с пробелами - как учитывать пробел как часть запроса?
Если в LIKE передается к примеру "Ленина" то он находит поля со значениями "улица ленина", "ул....

При считывании текста из файла в ListBox не учитывать пустые строки
При считывании из *txt в листбокс убрать пропуски

12
2693 / 1226 / 212
Регистрация: 10.12.2013
Сообщений: 4,143
07.06.2020, 13:43 2
Поиск/Замена

Найти: Прямоугольная плитка \K(.+) цвета
Заменить на: серебристого цвета


◉ Регулярные выражения
0
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 7
07.06.2020, 13:59  [ТС] 3
Нужно, чтоб в окно замены подставлять фразу именно целиком:
Прямоугольная плитка серебристого цвета
0
2693 / 1226 / 212
Регистрация: 10.12.2013
Сообщений: 4,143
07.06.2020, 15:13 4
Цитата Сообщение от Little Big Посмотреть сообщение
Нужно, чтоб в окно замены подставлять фразу именно целиком:
Прямоугольная плитка серебристого цвета
убрaть из рег.выражения \K
точку плюс .+ лучше заменить на \w+
0
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 7
07.06.2020, 19:07  [ТС] 5
Цитата Сообщение от volodin661 Посмотреть сообщение
убрaть из рег.выражения \K
точку плюс .+ лучше заменить на \w+
volodin661,

Цитата Сообщение от volodin661 Посмотреть сообщение
убрaть из рег.выражения \K
точку плюс.+лучше заменить на \w+
Вариант1
Найти: Прямоугольная плитка (.+) цвета
Заменить на: Прямоугольная плитка серебристого цвета
В этом варианте, при поиске, выделяются все строки.
Когда нажимаю: Заменить на:
То заменяются все выделенные строчки - одной.


Вариант2
Найти: Прямоугольная плитка (\w+) цвета
Заменить на: Прямоугольная плитка серебристого цвета
В этом варианте, при поиске, выделяются только одна строка.
Когда нажимаю: Заменить на:
То все найденные строки заменяются нужной строкой.
В принципе, это рабочий вариант с которым я уже смогу работать.
Единственное, я не смогу видеть всё найденное и заменённое. Как бы придётся немного наугад.
Может сможете найти решение, чтоб при поиске выделяло все фразы, как в первом варианте, а чтоб замена происходила, как во втором.

Добавлено через 2 часа 57 минут
volodin661,
Цитата Сообщение от volodin661 Посмотреть сообщение
убрaть из рег.выражения \K
точку плюс.+лучше заменить на \w+
Найти: Прямоугольная плитка (.+) цвета
Заменить на: Прямоугольная плитка серебристого цвета
Чтобы найти все строки, нужно поставить галочку и новые строки
Чтобы все выделенные строки, заменились на нужные, нужно перед тем как нажать кнопку Заменить всё, убрать галочку и новые строки.
Если её не убрать, то при нажатии Заменить всё, все найденные строки заменятся одной.
С такой последовательностью работает вариант с (.+)
В принципе рабочий вариант. Только, можно забыть снять галочку и новые строки. И всё пропадёт.

А вариант с (\w+) не выделяет все сроки, даже если поставить галочку и новые строки.
Соответственно не видно, что он нашёл и что будет заменять. Зато всё прекрасно все строки заменяет.

Господин volodin661.
Может есть какое-то решение, чтоб при варианте (.+) не убирать галочку и новые строки
Или при варианте (\w+), при установке галочки и новые строки, выделялись все найденные строки.
0
2693 / 1226 / 212
Регистрация: 10.12.2013
Сообщений: 4,143
07.06.2020, 19:36 6
Я ничего уже не помню про галочек и валечек, увы,
потому что npp не пользуюсь;
да и виртуального windows сейчас тож под рукой нет, чтобы установить и глянуть.

НО! какая общая задача-то ?
Если просто обработка текста с заменой одних слов на другие,
то и Notepad не нужен.
0
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 7
07.06.2020, 20:15  [ТС] 7
volodin661,
Цитата Сообщение от volodin661 Посмотреть сообщение
Я ничего уже не помню про галочек и валечек, увы,
потому что npp не пользуюсь;
да и виртуального windows сейчас тож под рукой нет, чтобы установить и глянуть.
НО! какая общая задача-то ?
Если просто обработка текста с заменой одних слов на другие,
то и Notepad не нужен.
Есть модуль для OpenCart3 не русифицырованный и есть файл в формате php c русским переводом. Но он только на 1/3 от английской версии. Может он от старой версии, когда был малый функционал. В общем я хочу те строки Русской версии, что первая половина строки(где текст на Английском) совпадает с со строками Английской версии, туда подставился Русский текст.
Как-то так.
Если вам затруднительно, так как вы не видите перед собой notepad++. В любом случае, вы мне уже помогли и я смогу решить задачу. Просто придётся немного контролировать процесс.
0
2693 / 1226 / 212
Регистрация: 10.12.2013
Сообщений: 4,143
07.06.2020, 20:41 8
из среды powershell:

PowerShell
1
(gc old_file.txt) -replace 'Прямоугольная плитка \S+ цвета', 'Прямоугольная плитка серебристого цвета'  | out-file new_file.txt -Encoding utf8
0
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 7
09.06.2020, 17:55  [ТС] 9
К сожалению, я не могу воспользоваться средой PowerShell, так как я любитель и не знаком с этой программой.
Попробовал способ, с установкой маски (.+) и (\w+).
Изначально я не правильно сформулировал вопрос и искал способ как наложить маску в фразе:
Прямоугольная плитка чёрного цвета
А в реальности, мне нужно наложить маску в фразе:
$_['text_manufacturer_settings'] = 'Настройки производителя';
Эту фразу режим поиска Расширенный - ищет, но в режиме Расширенный нельзя наложить маску.
А в режиме поиска Регуляр.выражен. выходит надпись: Не удаётся найти текст
Методом научного тыка я выяснил, что этот режим поиска ругается на символы: $ [ ]
Если эти символы заменить маской (.) то поиск Регуляр.выражен. работает. Но каждый раз такие символы заключать в маску в ручную - это слишком долго.
Может как-то в настройках можно сделать, чтоб режим поиска Регуляр.выражен. не ругался на эти символы?
Или может как-то ещё?
0
2693 / 1226 / 212
Регистрация: 10.12.2013
Сообщений: 4,143
09.06.2020, 20:10 10
Цитата Сообщение от Little Big Посмотреть сообщение
К сожалению, я не могу воспользоваться средой PowerShell, так как я любитель и не знаком с этой программой.
Это не просто программа, это штатная среда автоматизации операционной системы Windows и подобного рода
задачи разумно реализовывать именно с её помощью, а не с помощью notepad, word, excel etc .

Цитата Сообщение от Little Big Посмотреть сообщение
Может как-то в настройках можно сделать, чтоб режим поиска Регуляр.выражен. не ругался на эти символы?
Чтобы не ругался, квадратные и круглые скобки экранируются бэкслэшем '\'
Вот так: $_\['text_manufacturer_settings'\]

Дело в том, что в регулярных выражениях квадратные и круглые скобки являются частью синтаксиса,
поэтому, чтобы представить их обычными литеральными символами, применяется бэкслэш.
0
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 7
09.06.2020, 20:37  [ТС] 11
volodin661,
Цитата Сообщение от volodin661 Посмотреть сообщение
Чтобы не ругался, квадратные и круглые скобки экранируются бэкслэшем '\'
Вот так: $_\['text_manufacturer_settings'\]
На знак $ тоже ругается, который вначале.

Добавлено через 19 минут
Поставил бэкслэш перед $ - ищет.
Сейчас попробую, как будет замену делать.
0
2693 / 1226 / 212
Регистрация: 10.12.2013
Сообщений: 4,143
09.06.2020, 20:38 12
Лучший ответ Сообщение было отмечено Little Big как решение

Решение

Да, $ тоже заэкранировать, он тоже часть синтаксиса. ( Я тогда сразу добавил, но сайт у меня завис и эта часть про $ не прошла )
1
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 7
09.06.2020, 20:50  [ТС] 13
Всё нормально - ищет и заменяет.
Сейчас начну редактировать документ. Таким способом я вместо 30-и, за часа 3-и сделаю. Нормальная экономия времени.
Спасибо, Хорший Человек!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2020, 20:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Как скрыть часть текста на странице, чтобы при нажатии он открывался?
здравствуйте! Не разбираюсь в скриптах совершенно. Развиваю сайт на вордпресс. На страницы...

Полное совпадение при поиске текста
Вот код $file = fopen("db.txt", "r"); $buffer = fread($file, filesize("db.txt")); ...

При добавлении текста в Word часть добавляемого текста сделать жирным
Здравствуйте. Добавляю текст в Word операторами (переменные CalcValue, Str: String формируются...

Ошибка в ACCESS 2000 при поиске по части текста в форме
Люди объясните почему приведенное ниже работает в Access 97 а в Access 2000 выдает ошибку: RUN-time...

Notepad: как удалить первые строки текста?
Здравствуйте! Нужна помощь, есть несколько файлов в которых одинаковая шапка, которую требуется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.