Не работает регулярное выражение в Total Commander
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Общие вопросы

#1: Не работает регулярное выражение в Total Commander Author: svich2008 PostPosted: Sat Apr 17, 2021 22:16
    —
Почему это регулярное выражение не работает в total commander (((^[<br]+.[>])(\s+)){4,}) ?

В Nodpad++ это работает.
Мне нужно: найти в тексте моих файлов одинаковые повторяющиеся строки
количество строк, точно больше 4 строк

#2:  Author: Skif_off PostPosted: Sat Apr 17, 2021 23:37
    —
svich2008
Какие-то конкретные строки или просто одинаковые? Предположил было, что речь о поиске нескольких "<br>" подряд, но выражение странное, а "[>]" просто бессмысленно.

#3:  Author: svich2008 PostPosted: Sun Apr 18, 2021 00:03
    —
Нужно найти строки в тексте:
<br>
<br>
<br>
<br>
<br>
<br>
<br>

#4:  Author: Skif_off PostPosted: Sun Apr 18, 2021 03:32
    —
ТС воспринимает текст как одну строку и не поддерживает модификатор (?m), поэтому без "^". Точка намекает на возможность "<br/>"? Можно попробовать как-то так
Code:
(<br/?>\s+){4,}

#5:  Author: svich2008 PostPosted: Sun Apr 18, 2021 10:59
    —
Поправил Ваш код для ТС ([<br]+?[>]\s+){4,}
Но он тоже не работает. Я не понимаю.

Добавлено спустя 4 минуты:

Может быть есть заморочка с юникодом unicode-table.com ?

#6:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Apr 18, 2021 11:55
    —
svich2008
Вы не объясните поподробнее, чего именно пытались добиться правкой регулярки (конкретно и безотносительно к тому, правильна она была или нет, с учётом сказанного здесь) и, главное, какими вы хотели бы видеть результаты своего поиска при его успехе?
Поиск текста "в Total Commander" может означать только поиск в Листере, во внутреннем просмотрщике (ибо больше в TC это делать просто негде). Но там иной принцип работы (из справки: "программа поддерживает только поиск в пределах одной строки"), а вы, как я понял, хотите увидеть подсвеченными наборы одинаковых строк более заданного количества. Если регулярку применить к цепочке чем-то разделённых в одной строке <br>, их найти можно. Но у вас-то разные строки! Даже если пока оставить в покое кодировки, вы уверены, что выбрали подходящий инструмент для своей задачи?

#7:  Author: svich2008 PostPosted: Sun Apr 18, 2021 12:18
    —
Все дело в том, что мне очень нравится поиск в ТС. Подсвечивать теги мне не нужно. Нужно, что бы регулярные выражения работали. Но они у меня не срабатывают. Почему? Хочу разобраться. Есть мысли по этой регулировке?
Code:
([<br]*?.[>]\s+){5,}


https://regex101.com/

#8:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Apr 18, 2021 12:27
    —
svich2008
Не регулировке, а регулярке. Мысли есть более общие, и они уже приводились: многострочный поиск во внутреннем просмотрщике TC не выполняется, пользуйтесь тем инструментом, где ваш исходный синтаксис работает. А на заданные вопросы вы, кстати, фактически не ответили.

#9:  Author: svich2008 PostPosted: Sun Apr 18, 2021 12:34
    —
Вы меня конечно простите многоуважаемый эксперт Avada. Но, многострочный поиск таким способом, именно в Total Commander я делал в 2016 году, но к сожалению не сохранил регулярное выражение. Все замечательно работало. Если у Вас это не получается, пожалуйста, не говорите, что это не работает.

#10:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Apr 18, 2021 12:49
    —
svich2008
Это, насколько вижу, не у меня одного не получается. В связи с чем и возникла эта тема. И дискуссия у нас с вами как-то не получается. Впрочем, пробуйте, кто против? Если "я делал" имело место в действительности (в чём я пока, уж извините, не уверен) и вы сможете это повторить, будет полезно и интересно. А до тех пор у меня всё.

#11:  Author: Skif_off PostPosted: 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: AvadaLocation: Россия, Саратов PostPosted: Sun Apr 18, 2021 15:46
    —
Skif_off
Так я же выше цитировал про поддержку поиска с регэкспами в пределах одной строки. А что речь идёт о поиске по содержимому, уже вполне очевидно.

#13:  Author: svich2008 PostPosted: Sun Apr 18, 2021 16:17
    —
Если в строку поиска Total "с текстом:" задать, он найдет одно совпадение в тексте. Осталось придумать, как заставить его найти N-количество в строках.
Code:
^[<br]+.[>]

#14:  Author: Skif_off PostPosted: Sun Apr 18, 2021 18:27
    —
Avada
Глаз зацепился за упоминание просмотрщика, подумал, что при поиске по содержимому иначе.

svich2008
На данный момент самим ТС никак, остаётся: PCREsearch или с WinScript Advanced читать файл целиком и отдавать как текст (в диалоге есть возможность указать регэксп, только "^" там не ставьте, если "\s" не сработает - укажите группу "[\r\n\t ]", если опять не сработает - попробуйте с hex: "[\x0a\x0d\x09\x20]").
Первая группа в вашем выражении по-прежнему бессмысленно избыточная, только лишняя работа для парсера. Срабатывает это не потому, что правильно, а потому, что тегов, похожих на "br" в HTML вроде бы нет, простой символ "<" должен быть закодирован и файлы, видимо, валидные.



Total Commander -> Общие вопросы


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group