Как найти одинаковые слова в файле с
Коллеги, срочно нужна помощь по макросам. Работы по горло, было бы очень удобно по вызову макроса получать в тексте подсвеченные (выделенные цветом) повторяющиеся слова (части слов), для того, чтобы быстрее редактировать в тексте стиллистичесие дублирования штампов типа "Кроме того," Вместе с тем" "в соответствии".
Может есть у кого идеи?
2 Ответ от ЮВ 19.01.2011 14:32:42
Без написания макроса это можно сделать так (WORD 2003):
1 Правка->Заменить->В поле "Найти" искомый текст (например, Кроме того)
->В поле "Заменить на" тот же самый текст -> Кнопка "Формат" -> из выпадающего списка выбираете "Выделение цветом".
Это надо повторить для всех искомых фрагметов.
2 После этого переход ко всем выделенным фрагментам текста:
Правка->Найти->В поле "Найти" пусто -> Кнопка "Формат"-> из выпадающего списка выбираете "Выделение цветом"->кнопка "Найти далее".
Будет выполняться переход ко всем выделенным фрагментам текста.
3 Ответ от el-jonny-k 19.01.2011 15:24:23
Без написания макроса это можно сделать так (WORD 2003):
Спасибо. Но без написания макроса, с тем же успехом можно и просто прочитать.
Проблема в том, что таких слов-оборотов может быть порядка 20-30.
Тогда уж проще каждый оборот в поиск забивать без выделений и просто смотреть сколько таких позиций найдет, заодно сразу менять, потом новое слово и т.д. это фигня. Легче прочитать.
Поэтому тут нужен макрос, который бы при нахождении любых одинаковых последовательностей букв, например 6 подряд "кроме т" "вместе" "одновр" и т.д. любых - будет переставлять на них курсор. Цветом выделять это наверное лишнее усложнение.
Вопрос как его заставить искать повторение любой комбинации символов.
4 Ответ от Вождь 19.01.2011 16:32:35
Идейка по поиску нескольких одинаковых слов:
найти: ([А-ЯЁа-яё])*\1
подстановочные знаки: да
В данном случае ищется пара одинаковых цепочек из шести русских букв. Первые шесть букв в найденной области будут первыми в паре, последние - вторыми.
Таким же способом можно искать три, четыре и т.д. повторяющиеся цепочки.
Три повторения: ([А-ЯЁа-яё])*\1*\1
Пять повторений: ([А-ЯЁа-яё])*\1*\1*\1*\1
5 Ответ от el-jonny-k 19.01.2011 16:54:42
Что-то не получается, если это в поисковую строку забить, отметив подстановочные знаки, выделяет сразу пару абзацев, а потом двигает это выделение на один символ. .
6 Ответ от Вождь 20.01.2011 18:59:08
Все правильно. При этом методе поиска выделяется область от начала первого вхождения слова, до конца последнего вхождения. Искомое число повторений слова задается количеством параметров "*\1". Результатом поиска будет область охватывающая: "1-е вхождение слова. 2-е вхождение слова. 3-е вхождение слова. n-е вхождение слова". Между словами может быть произвольный текст и любое количество параграфов.
7 Ответ от el-jonny-k 21.01.2011 11:02:26
Все правильно. При этом методе поиска выделяется область от начала первого вхождения слова, до конца последнего вхождения. Искомое число повторений слова задается количеством параметров "*\1". Результатом поиска будет область охватывающая: "1-е вхождение слова. 2-е вхождение слова. 3-е вхождение слова. n-е вхождение слова". Между словами может быть произвольный текст и любое количество параграфов.
Супер, попробую уже отталкиваясь от этого сделать обычный кривоватый макрос, с последующим выделением цветом, так, чтобы в итоге предстал документ с подсвеченными словами.
А как сделать еще, чтоб пробел, цифры и знаки препинания входили в перечень искомых символов??
8 Ответ от Вождь 21.01.2011 16:32:00
. чтоб пробел, цифры и знаки препинания входили в перечень искомых символов.
Придется вам изучить поиск с подстановочными знаками.
Набор знаков задается в тексте "[А-ЯЁа-яё]".
Добавим знаки пунктуации английские буквы и цифры:
[. ;\?\!\-^
Да, учтите, что поиск с подстановочными знаками чувствителен к регистру букв. Поэтому, предложенный мной вариант, не найдет слово "Мама" как повторение слова "мама", "МАМА" и др. При поиске таких повторений без макроса не обойтись.
9 Ответ от Hans 17.01.2013 15:54:33
У меня похожая проблема нужно чтобы в одном файле ворде находил похожие предложения и выделял их , помогите уже весь инет облазил не могу найти путного?!
10 Ответ от Вождь 17.01.2013 16:13:43
Сначала, надо разбить текст на предложения. Вы уже решили как? Это на порядок сложнее, чем поиск повторений! Поиск же одинаковых абзацев, слов, букв проблемы не представляет.
11 Ответ от Hans 17.01.2013 16:44:35
я в этом нуб .
и возможно это реализовать без изменения файла?
Сначала, надо разбить текст на предложения. Вы уже решили как? Это на порядок сложнее, чем поиск повторений! Поиск же одинаковых абзацев, слов, букв проблемы не представляет.
12 Ответ от Вождь 17.01.2013 16:54:08
. возможно это реализовать без изменения файла?
Возможно, если знать, что в вашей задаче означает слово "предложение". Попробуйте описать своими словами, без программирования. Cразу поймете, что найти предложение - это самая сложная часть. Сравнить пару предложений - уже просто.
13 Ответ от Hans 17.01.2013 17:01:42
1)Предложение - от точки до точки
2) Набор слов от 3 до 10
. возможно это реализовать без изменения файла?
Возможно, если знать, что в вашей задаче означает слово "предложение". Попробуйте описать своими словами, без программирования. Cразу поймете, что найти предложение - это самая сложная часть. Сравнить пару предложений - уже просто.
14 Ответ от Hans 17.01.2013 17:03:43
набор слов ограниченный знаком
15 Ответ от Hans 17.01.2013 18:14:16
Даже точнее наверно Предложение - набор слов с предлогами и знаками препинания (все кроме . ! ? ) и оканчивающиеся на . ! ?
набор слов ограниченный знаком
Похожие темы
Выделение в тексте цветом одинаковых слов
Для тех, кто ищет в сети литературу по приложению Microsoft Word, можно порекомендовать сайт и форум Ворд Эксперт. Наш сайт о Microsoft Office Word даст ответ про: где в ворде 2007 рисование. Там вы найдете целый список самых разных изданий, причем, собраны наилучшие книги по Ворду.
На самом форуме, к слову, почерпнуть тоже можно много всего. Наш сайт о Microsoft Office Word даст ответ про: как колонтитул без титульника. Радует, что есть обратная связь, то есть вы можете задавать вопросы на разные темы и получать ответы поэтапно. На портале о Microsoft Office Word вы узнаете про: перечень скрытых знаков в ворде. Как показала практика, чаще всего нужно отформатировать небрежно написанный чужой текст, убрать лишние пробелы, расставить колонтитулы и так далее. На портале о Microsoft Office Word вы узнаете про: как делать сноски на литературу внизу страницы. Подобные проблемы так часто встречаются, что вынесено в отдельный подраздел, прочитайте его, возможно, ваша проблема будет решена. Наш сайт о Microsoft Office Word даст ответ про: нумерация страниц word 2007.
А вообще, основных разделов, где идет обсуждение, два: в первом решаются проблемы настроек, форматирования, редактирования в разных вариантах программы, во втором – автоматизация работы (то есть шаблоны, макросы и прочее). На портале о Microsoft Office Word вы узнаете про: как восстановить текст из doc.
В специальном подразделе вам будут предложены уже готовые решения. Вы сможете выложить и предложить свое или если не нашли то, что требовалось, подать заявку в другом подразделе. На портале о Microsoft Office Word вы узнаете про: как сделать автоматический перенос слов в опен офисе. Форум работает 24 часа в сутки. Приятного и плодотворного вам общения!
С помощью элементов управления Поиск и замена (CTRL+F или CTRL+H) и Поиск и замена в файлах (CTRL+SHIFT+F или CTRL+SHIFT+H) можно найти и заменить текст в редакторе Visual Studio. Вы можете найти и заменить только несколько экземпляров текста с помощью выбора нескольких точек вставки.
Если необходимо переименовать символы кода, такие как имена переменных или методов, то вместо поиска и замены лучше выполнить рефакторинг. Рефакторинг обладает интеллектуальными возможностями и может распознавать области, в то время как функция поиска и замены слепо заменяет все вхождения.
Возможность поиска и замены доступна в редакторе, в некоторых других текстовых окнах (например, в результатах поиска), в окнах конструкторов (например, в конструкторе XAML и в конструкторе Windows Forms) и в окнах инструментов.
Поле Найти/команда доступно как элемент управления панели инструментов, но оно не отображается по умолчанию. Чтобы отобразить поле Найти/команда, выберите на стандартной панели инструментов команду Добавить или удалить кнопки и щелкнув Найти.
Элемент управления "Поиск и замена"
- Нажмите CTRL+F для быстрого поиска строки в текущем файле.
- Нажмите CTRL+H для быстрого поиска и замены строки в текущем файле.
Элемент управления Поиск и замена отображается в правом верхнем углу окна редактора кода. Он немедленно выделяет все вхождения заданной поисковой строки в текущем документе. Вы можете переходить от одного вхождения к другому, нажав кнопку Найти далее или Найти предыдущий на элементе управления поиска.
Перейти к параметрам замены можно, нажав кнопку рядом с текстовым полем Найти. Чтобы изменять по одному вхождению за раз, выберите Заменить следующий рядом с текстовым полем Заменить. Чтобы заменить все найденные совпадения, нажмите кнопку Заменить все.
Чтобы изменить цвет выделения совпадений, в меню Сервис последовательно выберите Параметры, затем Среда, а затем Шрифты и цвета. В списке Показать параметры для выберите Текстовый редактор, а затем в списке Отображение элементов выберите Выделение найденных совпадений.
Окна инструмента поиска
Элемент управления Найти можно использовать в текстовых окнах и окнах кода, таких как окна вывода и результатов поиска, выбрав Правка > Поиск и замена (или нажав клавиши CTRL+F).
Версия элемента управления Найти также доступна в некоторых окнах инструментов. Например, можно фильтровать список элементов управления в окне панели элементов путем ввода текста в поле поиска. Другие окна инструментов, для которых поддерживается поиск содержимого, включают обозреватель решений, окно Свойства и Team Explorer.
Поиск и замена в файлах
- Нажмите CTRL+SHIFT+F для быстрого поиска строки в нескольких файлах.
- Нажмите CTRL+SHIFT+H для быстрого поиска и замены строки в нескольких файлах.
Функции Найти/Заменить в файлах аналогичны функциям элемента управления Поиск и замена за исключением того, что можно определить область поиска. Вы можете выполнить поиск не только в текущем открытом файле в редакторе, но также во всех открытых документах, всем решении, текущем проекте и выбранном наборе папок. Также можно выполнять поиск по расширению имени файла. Чтобы перейти к диалоговому окну поиска и замены в файлах, выберите Поиск и замена в меню Правка (или нажмите клавиши CTRL+SHIFT+F).
Если вы используете Visual Studio 2019 версии 16.6 или более ранней, диалоговое окно Найти и заменить может выглядеть не так, как показано здесь. Перейдите на версию этой страницы для Visual Studio 2017, чтобы получить правильное описание.
Результаты поиска
При выборе варианта Найти все откроется окно Результаты поиска со списком найденных совпадений. При выборе результата в списке отображается связанный файл и выделяется искомый текст. Если файл не открыт для редактирования, он открывается на вкладке предварительного просмотра в правой части набора вкладок. Для поиска в списке Результаты поиска можно использовать элемент управления Найти.
Создание пользовательских наборов папок поиска
Область поиска можно определить, нажав кнопку Выбор папок поиска (она выглядит как . ) рядом с полем Поиск в. В диалоговом окне Выбор папок поиска можно указать набор папок для поиска и сохранить спецификацию для дальнейшего использования.
Если к вашему компьютеру подключен диск удаленного компьютера, можно указать папки для поиска на удаленном компьютере.
Создание пользовательских наборов компонентов
Выбор нескольких точек вставки
Этот раздел относится к Visual Studio в Windows. Информацию о Visual Studio для Mac см. в статье Выбор блока.
Новая возможность в Visual Studio 2017 версии 15.8
Используйте выбор нескольких точек вставки, чтобы внести одинаковые изменения в несколько мест одновременно. Например, вы можете вставить одинаковый текст или изменить существующий текст в нескольких местах одновременно.
В Visual Studio 2022 мы улучшили возможности копирования и вставки с использованием нескольких курсоров. В прошлом при установке нескольких курсоров и копировании в них нескольких строк у каждого курсора происходила вставка всего содержимого буфера обмена. Теперь же, если скопировать и вставить определенное число строк ровно для такого же числа курсоров, каждая строка будет копироваться под соответствующий ей курсор отдельно.
Для выделения с помощью нескольких курсоров нажмите клавиши ALT+SHIFT+щелчок мышью или клавиши ALT+SHIFT+ . , а затем CTRL+SHIFT+клавиша со стрелкой, чтобы расширить выделенные фрагменты. После этого нажмите клавиши CTRL+C, чтобы скопировать текст из нескольких фрагментов. Нажмите ALT+SHIFT+щелчок мышью, чтобы создать несколько точек вставки в каждой строке, где вы хотите их установить. Наконец, нажмите CTRL+V, чтобы вставить каждую из строк под собственный курсор.
Кроме того, вы можете использовать клавиши ALT+SHIFT+СТРЕЛКА ВВЕРХ (или СТРЕЛКА ВНИЗ) либо ALT+SHIFT+перетаскивание мышью для выделения фрагментов с применением множества курсоров. Ранее эти действия создавали прямоугольный блок выделения. Теперь выделенный блок преобразуется в строки с несколькими курсорами. Этот метод проще и быстрее, чем вставлять отдельные курсоры, точно щелкая мышью в разных местах.
Если же при расширении фрагмента с несколькими курсорами с помощью ALT+SHIFT+клавиша со стрелкой и ALT+SHIFT+перетаскивание мышью вы хотите оставить выделение блоками, перейдите в раздел Сервис > Параметры > Текстовый редактор > Дополнительно и выберите Использовать выделение блоками.
Также можно включить использование нескольких курсоров из строки меню, открыв вкладку Правка > Несколько курсоров и выбрав желаемое действие.
На следующем снимке экрана -0000 выбран в трех местах. Если пользователь нажмет Удалить, все три фрагмента будут удалены:
Чтобы выбрать несколько точек вставки, выберите первый фрагмент текста обычным образом, а затем нажмите клавишу ALT и выберите фрагменты в других местах. Можно также автоматически добавить совпадающий текст в качестве дополнительного выделения или выбрать поле текста для внесения одинаковых правок в каждой строке.
Если вы выбрали ALT как клавишу-модификатор для команды "Перейти к определению" по щелчку мыши в меню Сервис > Параметры, функция выбора нескольких точек вставки недоступна.
Команды
Используйте следующие клавиши и действия для выбора нескольких точек вставки:
Клавиша | Действие |
---|---|
CTRL+ALT + щелчок | Добавить дополнительную точку вставки |
CTRL+ALT + двойной щелчок | Добавить дополнительное выделенное слово |
CTRL+ALT + щелчок + перетаскивание | Добавить дополнительный выделенный фрагмент |
SHIFT+ALT+ . | Добавить следующий совпадающий текст как выделенный фрагмент |
SHIFT+ALT+ ; | Выделить все совпадающие фрагменты текста |
SHIFT+ALT+ , | Удалить последний выделенный фрагмент |
SHIFT+ALT+ / | Пропустить следующий совпадающий фрагмент |
ALT + щелчок | Добавить выделенное поле |
ESC или щелчок | Отменить выбор всех элементов |
Некоторые команды также доступны в меню Изменить в разделе Несколько точек вставки:
Проблемы с отображением видео:
Как быстро найти дубликаты в списке?
В одной из предыдущих статей мы рассмотрели вопрос: " Как быстро удалить дубликаты в списке? ". В этом материале я расскажу о трех способах поиска дубликатов в списке.
Первый способ (сортировка):
Выделяем наш список, в котором необходимо найти повторяющиеся значения, переходим во вкладку меню "Данные", в разделе "Сортировка и фильтр" нажимаем кнопку " Сортировка по убыванию " или "Сортировка по возрастанию":
Наш список будет отсортирован и в нем визуально будет проще найти повторяющиеся значения:
Второй способ (условное форматирование):
Выделяем наш список, в котором необходимо найти повторяющиеся значения, переходим во вкладку меню "Главная", в разделе "Стили" нажимаем "Условное форматирование" в выпавшем списке выбираем пункт "Правила выделения ячеек", в списке вариантов выбираем "Повторяющиеся значения. ":
В открывшемся диалоговом окне нажимаем "ОК":
Все повторяющиеся значения в списке будут выделены цветом:
Третий способ (сводная таблица):
Выделяем наш список, в котором необходимо найти повторяющиеся значения, переходим во вкладку меню "Вставка", в разделе "Таблицы" нажимаем кнопку "Сводная таблица":
В открывшемся диалоговом окне нажимаем "ОК":
Перетаскиваем поле со списком (в моем случае это "Фамилия") в "СТРОКИ" и в "ЗНАЧЕНИЯ":
Встаем в первую ячейку с данными сводной таблицы, переходи во вкладку меню "Данные", в разделе "Сортировка и фильтр" нажимаем кнопку "Сортировка по убыванию":
В верхней части сводной таблицы получаем все повторяющиеся данные с количеством повторов:
Первый и второй варианты безусловно быстрее, но они больше подходят для небольших списков. Если список очень большой и вам важно узнать сколько раз повторяются те или иные данные лучше воспользоваться третьим способом.
Переключитесь на вкладку «Главная» в Ленте Word и нажмите кнопку Заменить.
Вы также можете открыть это окно используя сочетание клавиш CTRL+H.
Будет открыто окно «Найти и заменить». В поле «Найти» введите слово или фразу для поиска, которую вы хотите найти в тексте. Если вам нужно только найти текст в вашем документе, то для этого нажмите кнопку «Найти далее» и Word перейдёт к следующему совпадению искомого слова. Продолжайте кликать, чтобы пройтись по всем найденным результатам.
Если вы хотите заменить текст, который вы нашли на что-то ещё, то в поле «Заменить на» вставьте желаемую замену — новый текст или фразу. Кстати к слову, вы можете ввести до 255 символов в оба поля «Найти» и «Заменить на».
В моём примере, допустим мы хотим заменить фамилию «Петров» на фамилию «Мишкин», следовательно, мы впечатываем этот текст в соответствующие поля. Затем мы кликаем по кнопке «Найти далее» чтобы Word нашёл первое совпадение текста, которое указано в поле «Поиск».
Word прыгает по документу указывая и подсвечивая серым результат поиска, при этом окно «Найти и заменить» остаётся поверх документа, чтобы вы могли продолжать поиск. Кликните кнопку «Заменить» для замены выбранного в текущий момент результат на тот текст, который указан в поле «Заменить на».
Чтобы заменить за один раз все совпадения с поиском без остановки и исследования каждого результата, вы можете нажать кнопку «Заменить все».
Будьте осторожны, когда используете «Заменить все», поскольку он автоматически поменяет всех найденные вхождения, включая те, которые вы не хотели менять, и которые, возможно, вы даже не могли себе представить. В примере ниже ещё три совпадения «Петров», но нужно поменять только следующие два. В этом случае нужно делать замены по одной кликая кнопку «Заменить» для второго и третьего совпадений.
Если попадётся определённое вхождение, которое вы не хотите менять, тогда нажмите кнопку «Найти далее» столько раз, скольку нужно чтобы вы перешли к следующему фрагменту, который нужно заменить.
Чтобы выйти из диалогового окна «Найти и заменить» нажмите кнопку «Отмена».
Массовое удаление слова из текста в Word
Предположим, вам нужно удалить одинаковое слово или одинаковую фразу из всего текста. Если текст объёмный, то это может потребовать много времени.
Процесс удаления слов в Word можно автоматизировать. Для этого в поле «Поиск» введите слово или фразу, которую вы хотите удалить, а поле «Заменить на» оставьте пустым. Когда всё готово, нажмите кнопку «Заменить всё». В результате из всего текста будет убрано искомое слово.
Заключение
На самом деле, поиск в Word очень мощный и можно создавать весьма сложные конструкции и искать необычные вещи (параграфы, графические изображения, разные пробелы) и даже использовать регулярные выражения.
Основы поиска в Word весьма просты, но вы можете делать с ним очень многое — продолжайте углублять ваши знания.
Читайте также: