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