| View previous topic :: View next topic |
| Author |
Message |
DV
Joined: 16 Nov 2006 Posts: 725 Location: Kyiv, Ukraine
|
Posted: Wed Sep 30, 2009 8:48 am Post subject: |
|
|
| Tony wrote: | Я тоже за регулярные выражения  |
Можно воспользоваться pcre.dll, которая собрана с поддержкой UTF-8 (а такая в уже готовом виде есть, к примеру, в файлах WinMerge).
Таким образом, для работы с юникодными строками из AkelPad надо будет выпонять WideCharToMultiByte() в UTF-8, и скармливать получившуюся строку соответствующим функциям pcre.
Поиск, скорее всего, будет регистрозависимый (для нелатинских букв).
Дело лишь за малым - реализовать вышесказанное в AkelPad. Кому не терпится за это взяться, кто первый? |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 850
|
Posted: Thu Oct 01, 2009 6:12 am Post subject: |
|
|
DV
что-то не верится, чтобы она кушала только utf8, не поддерживая utf16. Он же проигрывает по производительности |
|
| Back to top |
|
 |
Tony
Joined: 03 Jul 2008 Posts: 98
|
Posted: Thu Feb 25, 2010 7:58 am Post subject: |
|
|
| Тоже считаю, что не хватает только регулярных выражений, остальное всё необходимое есть. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4649
|
Posted: Thu Feb 25, 2010 8:07 am Post subject: |
|
|
| Регулярные выражения реализованы через диалог SearchReplace.js в Scripts плагине. |
|
| Back to top |
|
 |
Tony
Joined: 03 Jul 2008 Posts: 98
|
Posted: Thu Feb 25, 2010 8:12 am Post subject: |
|
|
| Проблема в том, что если использовать AkelPad с флешке на другом компьютере, то нужно запускать Scripts-register, а на vista или seven сразу же проблемы начинаются. Всётаки было бы удобнее, еслибы регулярные выражения были бы в самой программе. |
|
| Back to top |
|
 |
se7h
Joined: 28 Sep 2009 Posts: 764 Location: Minsk, Belarus
|
Posted: Thu Feb 25, 2010 8:55 am Post subject: |
|
|
| Tony wrote: | | Проблема в том, что если использовать AkelPad с флешке на другом компьютере, то нужно запускать Scripts-register, а на vista или seven сразу же проблемы начинаются. Всётаки было бы удобнее, еслибы регулярные выражения были бы в самой программе. |
как-то раз столкнулся именно с такой проблемой, акел на флешке и ни о каком Script-register не могло быть и речи |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 850
|
Posted: Thu Feb 25, 2010 4:59 pm Post subject: |
|
|
| А что, неужели нету нормальной сишной реализации регулярок? Почему так сложно встроить их в Акел? |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4649
|
Posted: Fri Feb 26, 2010 8:57 am Post subject: |
|
|
Tony
se7h
Попробуйте портативный режим Scripts в версии 5.0. |
|
| Back to top |
|
 |
se7h
Joined: 28 Sep 2009 Posts: 764 Location: Minsk, Belarus
|
Posted: Fri Feb 26, 2010 9:06 am Post subject: |
|
|
этого как раз и не хватало  |
|
| Back to top |
|
 |
Tony
Joined: 03 Jul 2008 Posts: 98
|
Posted: Fri Feb 26, 2010 1:26 pm Post subject: |
|
|
Instructor
Впринципе неплохой выход из ситуации. Спасибо! |
|
| Back to top |
|
 |
guest13
Joined: 08 Jun 2012 Posts: 9
|
Posted: Fri Jun 08, 2012 12:54 pm Post subject: |
|
|
Привет всем! Очень прошу помочь мне)
-------------------------------------------
У меня однажды случилась "беда" - форматнул случайно флешку с содержимым. На ней были как текстовые файлы так и исполняемые, архивные файлы и т.д. После восстановления данных с флешки, в основном текстовых файлов, во многие из них записалось содержимое бинарных файлов... вообщем к читабельному тексту, html и другому подобному тексту добавились "кракозябры" типа 36kd녨3 g ǣFA 3ͼ~A |!@. Ну вообщем задачу вы поняли, думаю. Нужно с помощью шаблона "выделить" этот мусор.
--------------------------------------------
Я писал автору редактора, он меня послал сюда (я не знал что есть здесь у вас такой хороший форум) и написал примерное рег. выражение [\u0000-\u0008\u000B-\u000C\u000E-\u001F].*
------
1. Прошу сначала мне объяснить синтаксис этого выражения, по-порядку, что каждая часть этого выражения "делает/ищет", а то как-то отличается это всё от posix/perl...
2. Я проверял это выражение на практике, оно действительно работает, спасибо автору) но хотелось бы доработать его... выражение находит первые же кракозябры и далее до конца файла всё после них выделяет вместе с нужным текстом. Нужно чтобы нужный текст оно оставляло. Прошу помочь мне  |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1892 Location: Vinnitsa, Ukraine
|
Posted: Fri Jun 08, 2012 1:57 pm Post subject: |
|
|
Я не знаю чем именно Вы ищете: встроеным поиском, или скриптом. Оба движка работают на JavaScript-подобных регулярках(не знаю, чьего они стандарта). И регулярка вполне себе понятная.
токены [] в регулярках - означают что то что внутри - список искомого.
\u#### означает поиск символа по его коду(Юникодному), допускается везде в регулярках,
- - знак диапазона, допускается исключительно в [], иначе считается обычным знаком
. - любой символ
* - квантизатор 0 и больше(т.е. .* означает "захватить всё" при жадном захвате).
Всё тут читаемо. Выражение читается так.
Захватить 1 символ, код которого от 0 до 8 либо, 11, 12, 14 до 31 включительно), дальше сколько есть любых символов.
(9 - текстовый символ табуляции, 10,13 - перенос строки, >31 - текстовый знаки в соответствии с ANSI).
А теперь вопрос: Вы внимательно переписывали? Ибо вот та вот "." - лишняя. Без нее регулярка при замене на пустую строку просто удаляла байты, которым явно не место в текстовых файлах.
Естественно, это не есть универсальное решение. Ибо бинарники на то и бинарники что могут содержать любые символы, в том числе вполне читаемые текстовые последовательности. |
|
| Back to top |
|
 |
guest13
Joined: 08 Jun 2012 Posts: 9
|
Posted: Sat Jun 09, 2012 4:08 pm Post subject: |
|
|
Нашёл очень хороший сайт unicode-table.com, который мне помог разобраться с кодами символов, в принципе это всё есть в таблице символов виндовс... Я думаю проще будет выделить то что мне нужно, нежели то, что не нужно)
| FeyFre wrote: |
А теперь вопрос: Вы внимательно переписывали? Ибо вот та вот "." - лишняя. Без нее регулярка при замене на пустую строку просто удаляла байты, которым явно не место в текстовых файлах.
|
Да, внимательно переписывал. Не понял немного про "без неё". Какие такие байты, которым не место в тексте регулярка бы удаляла?
Выражение [...]. находит искомый символ из квадратных скобок + любой символ после него.
Выражение [...].* выделяет всё до конца файла после искомого символа из квадратных скобок.
А вот выражение [...]* у меня ничего не находит, пользуюсь стандартным поиском редактора. При поиске вниз ничего не находит, при поиске вверх зависает AkelPad ) Что это выражение делает? Ищет 0 или более раз символ в квадратных скобках? |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4649
|
Posted: Fri Jun 15, 2012 8:52 pm Post subject: |
|
|
| guest13 wrote: | | ...при поиске вверх зависает AkelPad... | Тестовая |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2510 Location: Киев, Русь
|
Posted: Sat Jun 16, 2012 10:55 pm Post subject: |
|
|
Вопросец по регуляркам /задаю здесь, т.к. другие в основном здесь задавали, а хотелось бы выделить эти вопросы в отдельную тему и учиться!)/
Значит есть строка, в начале могут быть пробелы/табуляции, а могут не быть. И наоборот, все эти "пустые символы" могут быть, а текста нет.
Так вот нужна такая регулярка, которая бы возвращала в $1 все "пустые символы" из начала строки, а в $2 - все значащие символы, идущие после начальных "пустых". |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|