Regular Expression Search and Replace (RESearch)
Regular Expression Search and Replace (RESearch)
Latest post of the previous page:
М-да. Mea culpa. Прощу прощения за настойчивое мороченье головы.
Замену. В изначальном посте диалог правильный.
-
- Posts: 63
- Joined: Tue 26 Nov, 2013 06:39
- Location: Новосибирск
- Has thanked: 1 time
- Been thanked: 1 time
Regular Expression Search and Replace (RESearch)
И все-таки, отсутствие опции типа "whole word only" в режиме Plain Text объясняется умыслом, или просто руки не дошли?
Regular Expression Search and Replace (RESearch)
Умыслом. Ибо это все равно будет RegExp search.emusic wrote: ↑Wed 22 Nov, 2017 05:58И все-таки, отсутствие опции типа "whole word only" в режиме Plain Text объясняется умыслом, или просто руки не дошли?
-
- Posts: 63
- Joined: Tue 26 Nov, 2013 06:39
- Location: Новосибирск
- Has thanked: 1 time
- Been thanked: 1 time
Regular Expression Search and Replace (RESearch)
Понятно, что внутри кода это преобразуется в RegExp, однако опция типа "Whole word" таки давно стала стандартной, а маркеры границ слова в разных реализациях RegExp обозначаются по-разному, приходится вспоминать-уточнять.Cavaler wrote: ↑Tue 28 Nov, 2017 16:25Умыслом. Ибо это все равно будет RegExp search.
На мой взгляд, имело бы смысл добавить опцию в диалог.
Regular Expression Search and Replace (RESearch)
C НГ всех.
То ли мне кажется, но похоже, что-то не так со счетчиком замен при переименовании файлов.
Имеется папка с файлами, как результат
(про источник не будем уточнять )
поиск был: ^\s*\d+[.-_]\s*(.+)
замена: ${R+001}_$1
Старые номера были убраны, а вот с новыми - беда.
То же самое выражение замены в текстовом файле работает, как задумано. Какая-то настройка?
Как пользоваться перенумерацией в плагине не сообразил.
То ли мне кажется, но похоже, что-то не так со счетчиком замен при переименовании файлов.
Имеется папка с файлами, как результат
Code: Select all
001_A pillow of winds.mp3
001_Echoes.mp3
001_Fearless.mp3
001_One of these days.mp3
001_San tropez.mp3
001_Seamus.mp3
поиск был: ^\s*\d+[.-_]\s*(.+)
замена: ${R+001}_$1
Старые номера были убраны, а вот с новыми - беда.
То же самое выражение замены в текстовом файле работает, как задумано. Какая-то настройка?
Как пользоваться перенумерацией в плагине не сообразил.
Last edited by Ilya_Nsk on Thu 04 Jan, 2018 07:14, edited 1 time in total.
- HaRT
- Moderator
- Posts: 10858
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Regular Expression Search and Replace (RESearch)
Пожелание: сделать красивое выравнивание в окошке со статистикой сделанных замен.
Т.е. чтобы метки выравнивались по двоеточию, а соответствующие числа (вхождения, файлы) — поразрядно.
Т.е. чтобы метки выравнивались по двоеточию, а соответствующие числа (вхождения, файлы) — поразрядно.
Фар есть инструмент, а не нянька. © 2009 DrKnS
-
- Posts: 5
- Joined: Sun 21 Jan, 2018 22:08
- Has thanked: 3 times
Regular Expression Search and Replace (RESearch)
начал пользовать - grep хорошо иметь
АДС поддержка планируется?
АДС поддержка планируется?
Regular Expression Search and Replace (RESearch)
Спасибо автору за плагин, не раз просто спасал.
сейчас решая очередную нетривиальную задачу появилось несколько предложений по улучшению
1) хотелось бы иметь возможность массово применить пакет (пресетов) из редактора к файлам по маске например (именно пакет, т.е. несколько пресетов в нужном порядке)
2) да и вообщ разделение пресетов на для редактора и для панели не очень как то, т.е. я понимаю что маски там и т.п. но сам пресет текстовой замены текста имхо должен быть в одном "подпространстве", т.е. настроил в редакторе подхватил в панельках
3) предложил бы пересмотреть концепцию хранения пресетов, хранить не в базе плагина а в текстовых файлах по отдельности.
4) если возможно, хотелось бы иметь возможность удаления несовпавшего в многострочных заменах, очень прямо хотелось бы, а то найти то то что нужно - быстро, а вот потом как только это оставить.... извращаться приходится
5)и по функции фильтрации так же, хотелось бы иметь возможность многострочных регекспов, а еще неплохо бы "живой поиск" как в плагине FilterLines
просто мысли вслух, если хоть что то когда то реализуется, буду рад.
сейчас решая очередную нетривиальную задачу появилось несколько предложений по улучшению
1) хотелось бы иметь возможность массово применить пакет (пресетов) из редактора к файлам по маске например (именно пакет, т.е. несколько пресетов в нужном порядке)
2) да и вообщ разделение пресетов на для редактора и для панели не очень как то, т.е. я понимаю что маски там и т.п. но сам пресет текстовой замены текста имхо должен быть в одном "подпространстве", т.е. настроил в редакторе подхватил в панельках
3) предложил бы пересмотреть концепцию хранения пресетов, хранить не в базе плагина а в текстовых файлах по отдельности.
4) если возможно, хотелось бы иметь возможность удаления несовпавшего в многострочных заменах, очень прямо хотелось бы, а то найти то то что нужно - быстро, а вот потом как только это оставить.... извращаться приходится
5)и по функции фильтрации так же, хотелось бы иметь возможность многострочных регекспов, а еще неплохо бы "живой поиск" как в плагине FilterLines
просто мысли вслух, если хоть что то когда то реализуется, буду рад.
- HaRT
- Moderator
- Posts: 10858
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Regular Expression Search and Replace (RESearch)
Можно практический пример, когда реально приходилось извращаться?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Regular Expression Search and Replace (RESearch)
ну например сотня файлов(по сверке из разных списков по базе), все разных размеров, от 10 до 10000 строк, в каждом определенным образом представленая информация, грубо говоря запись на объект, с идентификатором, и несколько строк описаний именно этого объекта. на один объект может быть несколько записей, нужно было выбрать записи с идентификатором, где в описании встречается определенный патерн.
вот и пришлось писать пакет, который
1 сначала находил многострочный патерн, и обрамлял его признаком начала и конца
2 выставлял в начале файла признак конца, в конце признак начала)
3 заменял все между признаком конца-начала (несовпавшее с первым патерном получается) на ничто
а потом по всем файлам ручками пройтись
искать по патерну и копировать не вариант,
многострочный патерн заменой как то вытащить тоже не получилось,
фильтрация не умеет многострочно.
может у меня конечно хреновое кунгфу, не спорю, либо не знаю чего то,
задачу надо было решить максимально быстро, поэтому использовал то чем пользуюсь, ткнулся по началу в super-sed который вроде pcre так же адекватно воспринимает, но что то с многострочниками не пошло.
вот и пришлось писать пакет, который
1 сначала находил многострочный патерн, и обрамлял его признаком начала и конца
2 выставлял в начале файла признак конца, в конце признак начала)
3 заменял все между признаком конца-начала (несовпавшее с первым патерном получается) на ничто
а потом по всем файлам ручками пройтись
искать по патерну и копировать не вариант,
многострочный патерн заменой как то вытащить тоже не получилось,
фильтрация не умеет многострочно.
может у меня конечно хреновое кунгфу, не спорю, либо не знаю чего то,
задачу надо было решить максимально быстро, поэтому использовал то чем пользуюсь, ткнулся по началу в super-sed который вроде pcre так же адекватно воспринимает, но что то с многострочниками не пошло.
- HaRT
- Moderator
- Posts: 10858
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Regular Expression Search and Replace (RESearch)
Вот именно это я и подозреваю.
Пользуетесь ли вы в регэкспе разметкой групп (в т.ч. именованными группами)? Умеете ли пользоваться просмотром вперёд/назад (lookahead/lookbehind) и их отрицанием (negative lookahead/lookbehind)? Если нет, то весьма вероятно, что, освоив их, избежите многих извратов.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Regular Expression Search and Replace (RESearch)
вы меня заинтриговали, прям про группы почитал еще, я действительно ими редко пользуюсь, втом числе просмотрами, не говоря уже про всякие атомарные группировки, но чет сообразить не могу как они в данном случае спасут... здесь скорее всего конструкции типа повторов можно покопать. но все равно моих познаний не хватает, а с реализацией предложеных функций оно как то жизнь бы упростило, тем боле при построчном просмотре они есть. не конечно теоретически движку сложнее объяснить в данном случае где начало где конец я так полагаю.
может научите если несложно, пример ща сочиню, если офтопик давайте перенесем, уберу под спойлер
может научите если несложно, пример ща сочиню, если офтопик давайте перенесем, уберу под спойлер
- HaRT
- Moderator
- Posts: 10858
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Regular Expression Search and Replace (RESearch)
Подсчёт вхождений в редакторе пропускает некоторые вхождения.
Я на это напоролся на практически значимом примере, но удалось минимизировать донельзя.
Открываем приложенный файл в редакторе, открываем , вводим
Ожидаем, что найдутся два вхождения, а .
Я пошевелил параметры и выяснил:
* Важны никсовые концы строк (LF) — с досовыми (CR LF) не воспроизводится.
*
*
* Ошибка появилась не в Фар 3 — она воспроизводится и в Фар 1.75.
* В версии 8.66 ошибки ещё нет. Вероятно, дело в
Я на это напоролся на практически значимом примере, но удалось минимизировать донельзя.
Открываем приложенный файл в редакторе, открываем , вводим
2
, нажимаем кнопку [ Count all ]
.Ожидаем, что найдутся два вхождения, а .
Я пошевелил параметры и выяснил:
* Важны никсовые концы строк (LF) — с досовыми (CR LF) не воспроизводится.
*
[x] Regular expression
не влияет.*
[x] Use real end-of-line sequences
в настройках не влияет.* Ошибка появилась не в Фар 3 — она воспроизводится и в Фар 1.75.
* В версии 8.66 ошибки ещё нет. Вероятно, дело в
Win 8.1 x64; Far Manager, version 3.0 (build 5145) x86; RESearch 8.67, без других плагинов.History.txt wrote:Fixed support for nonstandard newlines like \r\r\n
- Attachments
-
- RESearch_Editor-count-1vs2.txt
- '2' LF '2' LF
- (4 Bytes) Downloaded 162 times
Фар есть инструмент, а не нянька. © 2009 DrKnS