#1: Не работает регулярное выражение в Total Commander Author: svich2008, Posted: Sat Apr 17, 2021 22:16 Почему это регулярное выражение не работает в total commander (((^[<br]+.[>])(\s+)){4,}) ?
В Nodpad++ это работает.
Мне нужно: найти в тексте моих файлов одинаковые повторяющиеся строки
количество строк, точно больше 4 строк
#2: Author: Skif_off, Posted: Sat Apr 17, 2021 23:37 svich2008
Какие-то конкретные строки или просто одинаковые? Предположил было, что речь о поиске нескольких "<br>" подряд, но выражение странное, а "[>]" просто бессмысленно.
#3: Author: svich2008, Posted: Sun Apr 18, 2021 00:03 Нужно найти строки в тексте:
<br>
<br>
<br>
<br>
<br>
<br>
<br>
#4: Author: Skif_off, Posted: Sun Apr 18, 2021 03:32 ТС воспринимает текст как одну строку и не поддерживает модификатор (?m), поэтому без "^". Точка намекает на возможность "<br/>"? Можно попробовать как-то так
Code:
(<br/?>\s+){4,}
#5: Author: svich2008, Posted: Sun Apr 18, 2021 10:59 Поправил Ваш код для ТС ([<br]+?[>]\s+){4,}
Но он тоже не работает. Я не понимаю.
Добавлено спустя 4 минуты:
Может быть есть заморочка с юникодом unicode-table.com ?
#6: Author: Avada, Location: Россия, СаратовPosted: Sun Apr 18, 2021 11:55 svich2008
Вы не объясните поподробнее, чего именно пытались добиться правкой регулярки (конкретно и безотносительно к тому, правильна она была или нет, с учётом сказанного здесь) и, главное, какими вы хотели бы видеть результаты своего поиска при его успехе?
Поиск текста "в Total Commander" может означать только поиск в Листере, во внутреннем просмотрщике (ибо больше в TC это делать просто негде). Но там иной принцип работы (из справки: "программа поддерживает только поиск в пределах одной строки"), а вы, как я понял, хотите увидеть подсвеченными наборы одинаковых строк более заданного количества. Если регулярку применить к цепочке чем-то разделённых в одной строке <br>, их найти можно. Но у вас-то разные строки! Даже если пока оставить в покое кодировки, вы уверены, что выбрали подходящий инструмент для своей задачи?
#7: Author: svich2008, Posted: Sun Apr 18, 2021 12:18 Все дело в том, что мне очень нравится поиск в ТС. Подсвечивать теги мне не нужно. Нужно, что бы регулярные выражения работали. Но они у меня не срабатывают. Почему? Хочу разобраться. Есть мысли по этой регулировке?
#8: Author: Avada, Location: Россия, СаратовPosted: Sun Apr 18, 2021 12:27 svich2008
Не регулировке, а регулярке. Мысли есть более общие, и они уже приводились: многострочный поиск во внутреннем просмотрщике TC не выполняется, пользуйтесь тем инструментом, где ваш исходный синтаксис работает. А на заданные вопросы вы, кстати, фактически не ответили.
#9: Author: svich2008, Posted: Sun Apr 18, 2021 12:34 Вы меня конечно простите многоуважаемый эксперт Avada. Но, многострочный поиск таким способом, именно в Total Commander я делал в 2016 году, но к сожалению не сохранил регулярное выражение. Все замечательно работало. Если у Вас это не получается, пожалуйста, не говорите, что это не работает.
#10: Author: Avada, Location: Россия, СаратовPosted: Sun Apr 18, 2021 12:49 svich2008
Это, насколько вижу, не у меня одного не получается. В связи с чем и возникла эта тема. И дискуссия у нас с вами как-то не получается. Впрочем, пробуйте, кто против? Если "я делал" имело место в действительности (в чём я пока, уж извините, не уверен) и вы сможете это повторить, будет полезно и интересно. А до тех пор у меня всё.
#11: Author: Skif_off, Posted: Sun Apr 18, 2021 14:23
svich2008 wrote:
Поправил Ваш код для ТС ([<br]+?[>]\s+){4,}
Нет, вы не поправили. Группа "[>]" - бессмысленная, в ней всего один символ, можно просто ">". Группа "[<br]" непонятно что должна делать, т.к. на подобное
Code:
r>
br>
<br>
br>
br>
<br>
<br>
она тоже сработает, что не соответствует задаче.
Предложенный мной вариант тоже не срабатывает в ТС (в других программах и на https://regex101.com/ - работает), похоже, ТС читает файлы построчно, а не махом как одну строку, и соотв. \n или \r просто не видит. Это странно.
Посмотрите в сторону PCREsearch, обсуждается тут.
Avada
Полагаю, речь о поиске файлов по содержимому.
#12: Author: Avada, Location: Россия, СаратовPosted: Sun Apr 18, 2021 15:46 Skif_off
Так я же выше цитировал про поддержку поиска с регэкспами в пределах одной строки. А что речь идёт о поиске по содержимому, уже вполне очевидно.
#13: Author: svich2008, Posted: Sun Apr 18, 2021 16:17 Если в строку поиска Total "с текстом:" задать, он найдет одно совпадение в тексте. Осталось придумать, как заставить его найти N-количество в строках.
Code:
^[<br]+.[>]
#14: Author: Skif_off, Posted: Sun Apr 18, 2021 18:27 Avada
Глаз зацепился за упоминание просмотрщика, подумал, что при поиске по содержимому иначе.
svich2008
На данный момент самим ТС никак, остаётся: PCREsearch или с WinScript Advanced читать файл целиком и отдавать как текст (в диалоге есть возможность указать регэксп, только "^" там не ставьте, если "\s" не сработает - укажите группу "[\r\n\t ]", если опять не сработает - попробуйте с hex: "[\x0a\x0d\x09\x20]").
Первая группа в вашем выражении по-прежнему бессмысленно избыточная, только лишняя работа для парсера. Срабатывает это не потому, что правильно, а потому, что тегов, похожих на "br" в HTML вроде бы нет, простой символ "<" должен быть закодирован и файлы, видимо, валидные.