Текст, пусть, 100 МБ из n строк, и 2 слова длиной, скажем, по 10 символов слово1, слово2.main Alexey wrote: ↑28.03.2024 08:58 уже поиск по 2м словам "плох". то что он найдет выделение. в 400к символьном файле это выделение может быть до 400к длиной.
3+ слов то же самое.
задача "плоха".
...
Как может быть короткое слово2 в 10 символов повторяться во всем 100 МБ тексте подряд и слитно?
Ну даже в Minified JSON (или Minified JS) ищем ОДНО слово "name", оно может встречаться 1000 раз.
Разве это чем-то опасно?
Находим и двигаемся вперед или назад.
А если нужно найти ДВА слова в этом однострочном Minified JSON?
Чем это опасно?
Пусть у нас очень много очень длинных строк в файле.
У нас есть задача найти строки, где есть в одной строке, пример,
John Mary David
или
'погода' 'дожд' 'сне' (дожд*ливая сне*жная сне*г | шел дождь, погода была плохая )
Но мы не знаем, в какой последовательности они встречаются
Идея в том, чтобы просто ОТФИЛЬТРОВАТЬ строки и/или блоки лексера.
Как это сделано в Code tree.
А вот выделять в них все три слова подсветкой - для меня сложно представить, как это реализовать.
(Хотя на форуме 4PDA это удобно - получаешь отобранные посты с нескольким выделенными словами в них по "И".
Причем, даже как-то учитывают изменение словоформ.)
Вот кратко:
Есть файл во вкладке.
Есть несколько слов для поиска в этой вкладке.
Нужно показать только те строки/блоки, где есть эти слова в одном блоке лексера.
Остальные не показывать. Или свернуть. Но лучше скрыть для удобства.
Или нужно найти слова датчик движения.
Отбор по слову "датчик", в отборе искать "движения"
Пусть сделать не полностью программно, не сразу по всем словам, а инкрементально:
отбирать первый контекст и его показывать, а затем такой же поиск по следующему контексту.
Это пусть не всегда нужно для программирования.
Но нужно и важно для удобной работы с текстами, с записями.
Вот похожая задача.mix-7 wrote: ↑24.11.2023 10:03 > с регулярками - нет.
<...>
Придумал мини-todo: "- " в первой позиции что сделать:Эти записи разбросаны по тексту.Code: Select all
- сделать дело 1 ... - сделать дело n
Ищу с помощью регулярного выраженияНаходит и выделяет всю строку.Code: Select all
^-\ .*
<...>
Собрать ВСЕ найденные "тудушки" в одном месте.
Показывать их все слитно.
Может, если подумать, можно мои "хотелки" можно реализовать макросами?