PCREsearch как пользоваться?

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Моторокер, Avada, CaptainFlint, Nik, d-view

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Mailk писал(а):поправте что не так
Опять мудришь. Есть же [=tctorrent.Название].
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Mailk
Сообщения: 251
Зарегистрирован: Сб янв 16, 2010 20:19

Сообщение Mailk »

Да, на мудрил! Как wlx стоит, в свое время не ставил как wdx, странно что у других wdx нет имени... думал что и не показывают...
Все равно интересен был опыт регулярных выражений, мощь плагина понравилась! Жалко что нет заготовок готовых, например нахождения "данных" в ворде или ехеле в начале или конце.
например
(начало индификации)"нужные данные"(конец индификации)
Skif_off
Сообщения: 1257
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Продолжение отсюда:
Аля писал(а):Попробовала сделать новый набор колонок и вывести значение "в процессе" - добавила колонку "Line count", по факту оно выводит в папке значения 1 либо 0, то есть 1, как я поняла, если соответствует забитому "в процессе", и 0 - если не соответствует.
Не совсем так, готовое поле Line count показывает количество найденных совпадений с регулярным выражением: 0 - не найдено, 1 - найдено одно совпадение и т.д. Поэтому правильнее будет всё-таки в поисковом запросе указать не "значение=1", а "значение>0". Line count было взято для примера ибо ближе всего к вашей задаче и потребовало минимум изменений и пояснений.
Аля писал(а):можно ли таким же образом, как поиск по закончен/в процессе, вытащить и остальные данные из "шапки" страницы и сделать из этого набор колонок?
Да, только нужно подходящее регулярное выражение.
Аля писал(а):можно ли одновременно вывести несколько параметров (например, закончен\в процессе, количество частей и тд.) в разные колонки ...?
PCREsearchConfig.exe служит для добавления/изменения полей плагина, вы можете добавить свои поля: просто создавайте новое (новые) с тем же набором опций (только имена дайте попонятнее :))
Аля писал(а):возможно заставить выводить в колонке сам текст?
Возможно. Для этого нужно будет изменить значение Field type на String output и разобраться с Replace string (для начала напишите там только "$0" без кавычек - тогда плагин отдаст найденное целиком).
Например:
- создаёте в плагине поле "Status";
- выражение "(Статус:</b>\n)(в процессе)"
- в Replace string напишете "$2"
- создаёте в ТС пользовательский набор колонок: ваше созданное поле "Status", даёте имя колонке, например, "Статус".
- смотрите, что получилось.
И так сколько угодно (в разумных пределах, конечно).
Аля
Сообщения: 13
Зарегистрирован: Сб июл 02, 2016 19:58

Сообщение Аля »

Skif_off,

сделала, как Вы сказали, но не могу найти это созданное поле для того, чтобы добавить его в набор колонок.
По идее, оно же должно появиться и в поиске с помощью шаблона, как поле Line count, и с помощью него можно искать?

Прикрепляю скриншоты, думаю, опять где-то не доделала, посмотрите, пожалуйста.
http://s020.radikal.ru/i710/1607/b7/96d7c44a5d7e.jpg
http://s019.radikal.ru/i604/1607/ac/7884225f3435.jpg
Аватара пользователя
Staniclaw
Сообщения: 533
Зарегистрирован: Вс дек 12, 2010 15:37
Откуда: Ташкент

Сообщение Staniclaw »

Аля
Нужно изменить число в выпадающем списке ''Fields'', который показывает, сколько полей будут выводиться в ''Тотале'' как свойства; эти поля отмечены стрелкой. В показанном на скриншоте случае это число должно быть не меньше шестнадцати.
Вечному двигателю -- вечные тормоза!..
Аля
Сообщения: 13
Зарегистрирован: Сб июл 02, 2016 19:58

Сообщение Аля »

Staniclaw,

пробовала и до этого, но не догадалась перезапустить TC.
Такой вопрос: возможно ли в данном поле сделать вывод нескольких вариантов,
т.е. запрос вроде
(Статус:</b>\n)(в процессе) или
(Статус:</b>\n)(закончен) или
(Статус:</b>\n)(...)

соответственно, выводит либо "в процессе", либо "закончен" либо еще варианты?
Спасибо!
Аватара пользователя
Staniclaw
Сообщения: 533
Зарегистрирован: Вс дек 12, 2010 15:37
Откуда: Ташкент

Сообщение Staniclaw »

Аля писал(а):Такой вопрос: возможно ли в данном поле сделать вывод нескольких вариантов,
т.е. запрос вроде
(Статус:</b>\n)(в процессе) или
(Статус:</b>\n)(закончен) или
(Статус:</b>\n)(...)

соответственно, выводит либо "в процессе", либо "закончен" либо еще варианты?
Теоретически, должно как-то так, но я не проверял.

Код: Выделить всё

<b>Статус:</b>\n(.+?)\n<br/>
''Replace String'' должна содержать $1.
Аля писал(а):пробовала и до этого, но не догадалась перезапустить TC.
Перезапускать как раз не обязательно, достаточно выполнить команду cm_UnloadPlugins.

Добавлено спустя 1 час 38 минут:

Из-за сложных отношений плагина с переносами строк выражение может не сработать. В таком случае имеет смысл заменить на переносы строк последовательности \n (при этом в строке состояния настройщика появится соответствующее предупреждение):

Код: Выделить всё

<b>Статус:</b>
(.+?)
<br/>
Вечному двигателю -- вечные тормоза!..
Skif_off
Сообщения: 1257
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Staniclaw писал(а):Из-за сложных отношений плагина с переносами строк
Можно поподробнее? Плагином пользовался не часто, не сталкивался.

Наверное, сам как-то так попробовал бы:

Код: Выделить всё

<b>Статус:</b>[\r\n]*([^\r\n]+?)[\r\n]*<br
т.к. некоторые способы причёсывания HTML (Tidy и прочее) ставят пробел перед слэшем и в силу скромных знаний не люблю точку в регэкспах (не так наглядно и в некоторых реализациях точка не включает \n).
Аватара пользователя
Staniclaw
Сообщения: 533
Зарегистрирован: Вс дек 12, 2010 15:37
Откуда: Ташкент

Сообщение Staniclaw »

Skif_off писал(а):
Staniclaw писал(а):Из-за сложных отношений плагина с переносами строк
Можно поподробнее?
Можно:
Skif_off писал(а):в некоторых реализациях точка не включает \n).
Как и в этой. Хотя ожидается, что включает, ведь, как написано в руководстве, точка обозначает любой символ. В т. ч. и символ перевода строки.
Вечному двигателю -- вечные тормоза!..
Skif_off
Сообщения: 1257
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Staniclaw писал(а):ведь, как написано в руководстве, точка обозначает любой символ. В т. ч. и символ перевода строки.
Нет, это же синтаксис PCRE, в руководстве написано: any character except newline, newline - это именно "\n". В Notepad++, например, в диалоге поиска/замены есть отдельная галочка под это дело (включает в точку и \n).

P.S. Предпочитаю не использовать точку, т.к в AkelPad, например, своя реализация, пусть и схожая с PCRE, есть ещё и POSIX (grep, куда без него), JScript, зато в AutoIt чистый PCRE - зоопарк, в общем :) Стараюсь, чтобы везде было одинаково.
Аватара пользователя
Staniclaw
Сообщения: 533
Зарегистрирован: Вс дек 12, 2010 15:37
Откуда: Ташкент

Сообщение Staniclaw »

Skif_off писал(а):в руководстве написано: any character except newline, newline - это именно "\n".
А, проглядел... :oops:
Skif_off
Сообщения: 1257
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Автор таки добавил функционал, аналогичный Regexp Content plugin:
[v] String output
[v] Search in filename only
BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

Плагин не работает с xml файлами. После переименования расширения на txt заработало. Можно как-то включить поддержку xml файлов?
Аватара пользователя
Monarch-LFV
Сообщения: 367
Зарегистрирован: Пн июл 22, 2019 13:20

Сообщение Monarch-LFV »

Не работает:

Код: Выделить всё

regex4=\A(?:.*\R){1}(.*)\R?
должна отображаться только вторая строка (Second Line), то есть первую вроде как должен пропускать выражением (?:...), но не пропускает, даже в тестере.
Skif_off
Сообщения: 1257
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Monarch-LFV
А если упростить

Код: Выделить всё

^[^\r\n]+[\r\n]+([^\r\n]*)
?

Есть плагин Text Line, возможно, будет удобнее?
Ответить