Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » Разное - Как в файле Word найти дубликаты наборов символов (кусков текста)

Ответить
Настройки темы
Разное - Как в файле Word найти дубликаты наборов символов (кусков текста)

Пользователь


Сообщения: 58
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: sl.oleg@fb
Дата: 20-11-2016
Здравствуйте.
Подскажите, кто знает:
Как в файле Word найти дубликаты наборов символов (кусков текста) с минимальной длиной, заданной в качестве параметра. Сами наборы символов не задаются - они программно обнаруживаются в тексте, ограничиваясь лишь их минимальной длиной.
Возьмем для примера такой тест:

"Мой дядя самых честных правил,
Когда не в шутку занемог,
Он уважать себя заставил
И лучше выдумать не мог самых честных.
Его пример другим наука;
Но, боже мой, какая скука
С больным сидеть и день и ночь,
самых честных Не отходя ни шагу прочь!"

В качестве параметра минимальной длины набора совпадающих символов примем например 10.
Тогда программа должна найти и указать (подсветкой или еще как-то) три вхождения "самых чест" (отмечены жирным шрифтом на примере).
Если таких дубликатов (разных дубликатов имеется ввиду) будет несколько, то программа должна сначала показать их список, а потом, когда пользователь выберет интересующее его текст дубликата, показать в общем тексте все его вхождения (напр.все тем же цветом). Далее можно посмотреть второй набор дубликатов и т.д.
Существуют ли в природе такие программы?

Отправлено: 15:30, 20-11-2016

 

Пользователь


Сообщения: 58
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Цитата Iska:
Испольуйте первый вариант для поиска двух повторов потребной длины. Третий повтор и все последующие (четвёртый, пятый и т.д.) Вы и так найдёте при повторном поиске тех же двух повторов. »
Я бы использовал, если б он находил все вхождения (с пробелыми, запятыми и т.д.), а так - увы... Поробуйте скопировать мой пример из первого поста и найти дубликат "самых чест" - ничего не получится...

Отправлено: 09:32, 22-11-2016 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Да, к сожалению поиск по регулярным выражениям в Word'е весьма негибкий. Подумаю, что можно придумать.

Кстати, только сейчас заметил свою ошибку: в данном случае ищется и находится не четыре, как я написал выше. Дело в том, что «;» в выражении «([А-ЯЁа-яё]{4;})(*)\1» означает «не менее». То есть будет осуществляться поиск от четырёх символов-повторов и выше — четыре, пять, шесть, …десять, … двадцать — сколько будет найдено.

Отправлено: 10:27, 22-11-2016 | #12


Аватара для Methodichka

Новый участник


Сообщения: 22
Благодарности: 7

Профиль | Сайт | Отправить PM | Цитировать


Цитата sl.oleg@fb:
Цитировать »
Можно и любые знаки, но такой поиск очень тормозит:
(?{10;})*\1
Вот примерчик пошустрее, для поиска цепочек от 4 до 10 знаков:
([!^13]{4;10})*\1
Но лучше указывать набор искомых знаков.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:56, 22-11-2016 | #13


Пользователь


Сообщения: 58
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Цитата Methodichka:
Но лучше указывать набор искомых знаков. »
А чем лучше-то? И как указать набор искомых знаков, в том числе таких как пробел, запятая, точка, точка с запятой, двоеточие, кавычки и скобки всех мастей и т.д.; а также конец абзаца, конец строки и т.п.

Цитата Methodichka:
Можно и любые знаки, но такой поиск очень тормозит:
(?{10;})*\1 »
Совсем нереально использовать - просто вешает приложение и все

Цитата Methodichka:
Вот примерчик пошустрее, для поиска цепочек от 4 до 10 знаков:
([!^13]{4;10})*\1 »
Все отлично работает только вот при заданой длине поиска дублей в 4-10 знаков, приходится много раз нажимать на кнопку "Далее" чтоб перейти к след.дублю, т.к. сначала он по одной букве (при каждом клике на "Далее") проходит весь первый найденный им дубль. Это можно как то поправить? И еще: не могли бы вы сбросить мне ссылку на описание символов, используемых в строке поиска?

Отправлено: 21:29, 22-11-2016 | #14


Пользователь


Сообщения: 58
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Запустил поиск ([!^13]{20;25})*\1 на документе в 41 страницу уже висит крутящийся бублик минут 10... Походу использовать механизмы контекстного поиска нереально из-за их совершенной неприспособленности и неадаптированности к задачам подобного типа. Может кто-то знает программы сторонних производителей для решения таких задач? Пусть не с вордовскими файлами, а с обычными текстовыми? Лишь бы поиск дубликатов проходил в реальные сроки, хотя бы одна страница в секунду...

Отправлено: 22:03, 22-11-2016 | #15


Аватара для Methodichka

Новый участник


Сообщения: 22
Благодарности: 7

Профиль | Сайт | Отправить PM | Цитировать


Цитата sl.oleg@fb:
Совсем нереально использовать - просто вешает приложение и все»
Вот об этом я и говорил, когда писал, что надо указывать четкий набор знаков. Чем шире этот набор, а значит и сложнее маска поиска, тем чаще глюки Word.

Знаки перечисляются в квадратных скобках, как в примерах выше, можно через дефис: [А-ЯЁа-яё] [A-z] [0-9]

Вам надо немного освоить поиск Word. Используйте поисковики и маску "word подстановочные знаки поиск замена". К сожалению, вся справка из Word сейчас ушла на сайты Микрософт. Это радикально снизило ее качество, так как доступность справки стала никакая. И если это чувствую я как писатель макросов, то что говорить об обычных пользователях.

И не забывайте, что этот инструмент Word называется "Поиск и замена". Судя по всему, вам надо нечто большее, оригинальное. Такое реализуется уже макросами.

Отправлено: 07:55, 23-11-2016 | #16


Пользователь


Сообщения: 58
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Цитата Methodichka:
Знаки перечисляются в квадратных скобках, как в примерах выше, можно через дефис: [А-ЯЁа-яё] [A-z] [0-9] »
А как же все таки указать пробел и знак конца абзаца, но пробел особенно?

Отправлено: 20:53, 24-11-2016 | #17


Аватара для Methodichka

Новый участник


Сообщения: 22
Благодарности: 7

Профиль | Сайт | Отправить PM | Цитировать


Цитата sl.oleg@fb:
А как же все таки указать пробел и знак конца абзаца... »
Русский алфавит (А-ЯЁа-яё) + пробел ( ) + неразрывный пробел (^s) + знак абзаца (^13):
[А-ЯЁа-яё ^s^13]

Русский алфавит (А-ЯЁа-яё) + пробелы ( ^s) + знаки препинания (,:;\!\?):
[А-ЯЁа-яё ^s,:;\!\?]

Предыдущий пример без точки (.) потому, что то такой шаблон у мня не работает:
([А-ЯЁа-яё ^s.,:;\!\?]{4;})*\1
Похоже на очередной глюк Word.

Повторюсь
Цитата Methodichka:
...надо немного освоить поиск Word... »
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:15, 25-11-2016 | #18


Пользователь


Сообщения: 58
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Все же поиск ворда с его глюками и тормозами - это, увы, не решение проблемы. Может все же кто-то слышал о сторонней программе, которая делает подобное с текстом?

Отправлено: 08:43, 26-11-2016 | #19


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


sl.oleg@fb, мы так и не увидели даже образца с текстом, ничего не услышали про его объёмы.

Отправлено: 10:42, 26-11-2016 | #20



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » Разное - Как в файле Word найти дубликаты наборов символов (кусков текста)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] в файле найти дату, скопировать символы, дописать перед символами в другом файле sucher Скриптовые языки администрирования Windows 7 10-03-2016 17:42
VBS/WSH/JS - [решено] Замена определённых символов и вставка текста. aggressor_ Скриптовые языки администрирования Windows 9 29-05-2012 15:06
CMD/BAT - Как проверить наличие текста в файле mamont1 Скриптовые языки администрирования Windows 6 16-09-2010 16:32
[решено] Найти и заменить в текстовом файле. Как? Pozia AutoIt 15 11-03-2010 19:12
Разное - Различные кодировки символов в одном файле EvgeniyQQQ Программирование и базы данных 3 21-05-2009 06:49




 
Переход