Поиск по содержимому файлов с учетом знаков препинания
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
Поиск по содержимому файлов с учетом знаков препинания
Добрый день!
Прошу помочь в решении вопроса. Поиском по форуму, к сожалению, не нашла ответа.
Дано: несколько сотен файлов в формате .htm и .html. Необходимо провести поиск по содержимому файлов с ключевой фразой "Статус: в процессе".
Все упирается именно в двоеточие. То есть находит слово "статус" во всех файлах, "в процессе" в нескольких, а нужно именно фразу целиком, так как "в процессе" может находиться и просто в тексте файла, а не в шапке, определяя завершенность текста. Если же я пробую фразу целиком, то пишет "Искомые файлы не найдены".
Файлы на русском языке, кодировка utf-8.
Испробованы все галочки в диалоге поиска, плагины поиска. Я понимаю, что я, разумеется, что-то делаю не так, но что - понять не могу.
Если я правильно поняла, то, скорее всего, нужно использовать параметр "Регулярные выражения", но если ставить на него галку, исчезает галка с параметра "utf-8", и не находится вообще ничего.
Пожалуйста, объясните, можно ли провести поиск по содержимому в файлах utf-8, учитывая знаки препинания в запросе?
Простите за возможную путанность объяснения.
Спасибо.
Прошу помочь в решении вопроса. Поиском по форуму, к сожалению, не нашла ответа.
Дано: несколько сотен файлов в формате .htm и .html. Необходимо провести поиск по содержимому файлов с ключевой фразой "Статус: в процессе".
Все упирается именно в двоеточие. То есть находит слово "статус" во всех файлах, "в процессе" в нескольких, а нужно именно фразу целиком, так как "в процессе" может находиться и просто в тексте файла, а не в шапке, определяя завершенность текста. Если же я пробую фразу целиком, то пишет "Искомые файлы не найдены".
Файлы на русском языке, кодировка utf-8.
Испробованы все галочки в диалоге поиска, плагины поиска. Я понимаю, что я, разумеется, что-то делаю не так, но что - понять не могу.
Если я правильно поняла, то, скорее всего, нужно использовать параметр "Регулярные выражения", но если ставить на него галку, исчезает галка с параметра "utf-8", и не находится вообще ничего.
Пожалуйста, объясните, можно ли провести поиск по содержимому в файлах utf-8, учитывая знаки препинания в запросе?
Простите за возможную путанность объяснения.
Спасибо.
Аля
Во-первых, в порядке общей информации: в новейших версиях TC 9.0, помимо прочего, добавлена возможность одновременного поиска текста с регулярными выражениями и в кодировке UTF-8.
Во-вторых, конкретно по проблеме: лично у меня в тестовом HTML-файле в UTF-8 фрагмент, содержащий двоеточие, прекрасно находится. В том числе и ровно та фраза, которую вы ищете. Между прочим, и в 8.52a тоже. Опция "UTF-8" при поиске, естественно, включена. И, конечно, без всяких регулярных выражений.
Вы какой, собственно, версией TC пользуетесь? И заодно уж — о каких плагинах поиска речь?
Во-первых, в порядке общей информации: в новейших версиях TC 9.0, помимо прочего, добавлена возможность одновременного поиска текста с регулярными выражениями и в кодировке UTF-8.
Во-вторых, конкретно по проблеме: лично у меня в тестовом HTML-файле в UTF-8 фрагмент, содержащий двоеточие, прекрасно находится. В том числе и ровно та фраза, которую вы ищете. Между прочим, и в 8.52a тоже. Опция "UTF-8" при поиске, естественно, включена. И, конечно, без всяких регулярных выражений.
Вы какой, собственно, версией TC пользуетесь? И заодно уж — о каких плагинах поиска речь?
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Avada,
кажется, я поняла, в чем дело, простите, что раньше не сказала, я в этом не особо разбираюсь.
Если посмотреть на код страницы, то искомая фраза отображена так:
То есть, получается, с переносом на другую строку, видимо, поэтому и не ищет.
Подскажите, пожалуйста, можно ли как-нибудь искать такие запросы, или это невозможно?
Спасибо.
кажется, я поняла, в чем дело, простите, что раньше не сказала, я в этом не особо разбираюсь.
Если посмотреть на код страницы, то искомая фраза отображена так:
Код: Выделить всё
<br/>
<b>Статус:</b>
в процессе
<br/><br/>Подскажите, пожалуйста, можно ли как-нибудь искать такие запросы, или это невозможно?
Спасибо.
Аля
Ну тогда удивляться нечему. Тут целый букет всего. HTML обрабатывается как простой текст, теги при этом не игнорируются. Вдобавок в приведённом фрагменте перед "в процессе" нет пробела. И, наконец, перенос. Как его искать, в справке, между прочим, написано.
Короче говоря, без регэкспов — вот так (и кодировку выставить не забудьте):
Статус:</b>\nв процессе
Это при условии, что у вас все вхождения оформлены однотипно.
Ну тогда удивляться нечему. Тут целый букет всего. HTML обрабатывается как простой текст, теги при этом не игнорируются. Вдобавок в приведённом фрагменте перед "в процессе" нет пробела. И, наконец, перенос. Как его искать, в справке, между прочим, написано.
Короче говоря, без регэкспов — вот так (и кодировку выставить не забудьте):
Статус:</b>\nв процессе
Это при условии, что у вас все вхождения оформлены однотипно.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Flasher, Avada,
все равно пишет - "Искомые файлы не найдены". Версия TC последняя, при поиске ставлю галки на "UTF-8" и ставлю, и пробовала без "Регулярные выражения".
Прикрепляю ссылку (сам файл сохранен в html на комп) как образец, остальные такие же. Может быть, возможно понять, в чем дело.
Не хотелось бы вручную открывать и переименовывать каждый незаконченный файл, их несколько сотен.
Приношу извинения за беспокойство, всю голову уже сломала, как по-другому сделать, не сильна в этом, к сожалению.
Спасибо.
поставила лишний пробел в ссылке:
https://ficbook.net/printfic/350870
все равно пишет - "Искомые файлы не найдены". Версия TC последняя, при поиске ставлю галки на "UTF-8" и ставлю, и пробовала без "Регулярные выражения".
Прикрепляю ссылку (сам файл сохранен в html на комп) как образец, остальные такие же. Может быть, возможно понять, в чем дело.
Не хотелось бы вручную открывать и переименовывать каждый незаконченный файл, их несколько сотен.
Приношу извинения за беспокойство, всю голову уже сломала, как по-другому сделать, не сильна в этом, к сожалению.
Спасибо.
поставила лишний пробел в ссылке:
https://ficbook.net/printfic/350870
Flasher
В моём тестовом HTML-файле с точно таким же вхождением и точно такой же кодировкой по вышеприведённому варианту поиска всё находится (вообще без масок, поскольку искал в выделенном файле), в этом — нет. Причину пока не понял, на ночь глядя искать её не буду, отложу на потом.
Добавлено спустя 2 минуты:
Аля
А слов "в процессе" для поиска недостаточно?
В моём тестовом HTML-файле с точно таким же вхождением и точно такой же кодировкой по вышеприведённому варианту поиска всё находится (вообще без масок, поскольку искал в выделенном файле), в этом — нет. Причину пока не понял, на ночь глядя искать её не буду, отложу на потом.
Добавлено спустя 2 минуты:
Аля
А слов "в процессе" для поиска недостаточно?
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Flasher,
Avada,
нет, к сожалению, не ищет.
Приведенный файлик со стихами, а есть просто с длинными текстами. Такое выражение попадается в самом тексте, иногда несколько раз, а мне нужно знать, какие из нескольких сотен файлов именно не закончены и пересохранять их по мере окончания.
Вручную пересматривать - весьма муторно, хотела затем переименованием добавить в конце имени "в процессе", чтобы знать, по каким файлам отслеживать обновления.
Avada,
нет, к сожалению, не ищет.
Приведенный файлик со стихами, а есть просто с длинными текстами. Такое выражение попадается в самом тексте, иногда несколько раз, а мне нужно знать, какие из нескольких сотен файлов именно не закончены и пересохранять их по мере окончания.
Вручную пересматривать - весьма муторно, хотела затем переименованием добавить в конце имени "в процессе", чтобы знать, по каким файлам отслеживать обновления.
Я вроде как ясно написал — чего. В моём файле с такими условиями всё находилось, в выложенном — нет. О прочем см. далее.Flasher писал(а):Причину чего?
Твой вариант с регэкспами у меня почему-то не работает.
Аля
Чтобы уж совсем всё было ясно видно, взял за основу свой тестовый файл (где всё находится) и образец (где ничего не находится) и привёл их к внешне идентичному содержанию, включающему
Код: Выделить всё
<body>
<p><b>Статус:</b>
в процессе</p>
</body>Далее я учёл, что в файлах разный тип переноса строк (\r\n в моём, \n в редуцированном образце), привёл это к единому виду, поменяв (через AkelPad) в образце юниксовский стиль переносов на стиль Windows. После чего поиск в том варианте, как я это предлагал ранее, немедленно заработал.
Так что, да, причина в переносах. Но использовать универсальную поисковую строку я пока не смог.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Flasher,
ссылка на скриншот:
http://s018.radikal.ru/i514/1607/a7/39b405e48a80.jpg
Версия TC - 9.0 beta 3, последняя, скачивала отсюда, с форума.
Испробовано: по Вашему варианту написания (и по второму варианту тоже)
Поле "Искать файлы:" *.htm;*.html " - заполнено, пусто;
Галочка "Регулярные выражения" - стоит, не стоит;
Все остальные галки в правом столбике, кроме UTF-8, стоят, не стоят.
И все вышеперечисленное в различных комбинациях...
Avada,
если причина в переносах, можно ли каким-нибудь способом через TC пакетно отредактировать все файлы в приемлемый вид? Или нужна сторонняя программа (если такие существуют)?
Или все-таки есть способ поиска по содержимому и в таких файлах в TC?
Спасибо.
ссылка на скриншот:
http://s018.radikal.ru/i514/1607/a7/39b405e48a80.jpg
Версия TC - 9.0 beta 3, последняя, скачивала отсюда, с форума.
Испробовано: по Вашему варианту написания (и по второму варианту тоже)
Код: Выделить всё
Статус:</b>\nв процессеПоле "Искать файлы:" *.htm;*.html " - заполнено, пусто;
Галочка "Регулярные выражения" - стоит, не стоит;
Все остальные галки в правом столбике, кроме UTF-8, стоят, не стоят.
И все вышеперечисленное в различных комбинациях...
Avada,
если причина в переносах, можно ли каким-нибудь способом через TC пакетно отредактировать все файлы в приемлемый вид? Или нужна сторонняя программа (если такие существуют)?
Или все-таки есть способ поиска по содержимому и в таких файлах в TC?
Спасибо.
Аля
У меня пока ответов на заданные вопросы нет, поскольку этой проблемой серьёзно раньше никогда не занимался. К тому же приведение переносов к другому виду на локальной машине не означает, что и на сервере всё будет так же. (Загляните, например, сюда.) Но, возможно, кто-то сможет подсказать что-то толковое.
И, думаю, очевидно, что вариант, показанный на скрине, в любом случае работать не может (регэкспы включены, но в поле ввода их нет).
У меня пока ответов на заданные вопросы нет, поскольку этой проблемой серьёзно раньше никогда не занимался. К тому же приведение переносов к другому виду на локальной машине не означает, что и на сервере всё будет так же. (Загляните, например, сюда.) Но, возможно, кто-то сможет подсказать что-то толковое.
И, думаю, очевидно, что вариант, показанный на скрине, в любом случае работать не может (регэкспы включены, но в поле ввода их нет).
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Если правильно понял, в вашем примере "Статус:</b>\nв процессе" это не должно иметь значения: без галки Регулярные выражения можно использовать Escape-последовательности, а с ними обычно \n - это любой перенос строки. По крайней мере так в любом приличном текстовом редакторе.Avada писал(а):Далее я учёл, что в файлах разный тип переноса строк (\r\n в моём, \n в редуцированном образце)
Баг ТС? (Ранее не пробовал искать подобное, обычно обычный текст.)
Аля
RegXtract не успели попробовать?
Добавлено спустя 20 минут:
Хотя нет, PCREsearch, наверное, будет поудобнее (см. Line count: замените выражение на Статус:</b>\r?\nв процессе на всякий случай и при поиске с плагинами в условие Line count = 1)
Добавлено спустя 2 минуты:
С PCREsearch можно будет создать и пользовательский набор колонок.