AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Регулярные выражения
Goto page Previous  1, 2, 3, 4, 5, 6, 7  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
DV



Joined: 16 Nov 2006
Posts: 807
Location: Kyiv, Ukraine

PostPosted: Wed Sep 30, 2009 8:48 am    Post subject: Reply with quote

Tony wrote:
Я тоже за регулярные выражения Smile

Можно воспользоваться pcre.dll, которая собрана с поддержкой UTF-8 (а такая в уже готовом виде есть, к примеру, в файлах WinMerge).
Таким образом, для работы с юникодными строками из AkelPad надо будет выпонять WideCharToMultiByte() в UTF-8, и скармливать получившуюся строку соответствующим функциям pcre.
Поиск, скорее всего, будет регистрозависимый (для нелатинских букв).
Дело лишь за малым - реализовать вышесказанное в AkelPad. Кому не терпится за это взяться, кто первый?
Back to top
View user's profile Send private message
Fr0sT



Joined: 24 Jul 2007
Posts: 875

PostPosted: Thu Oct 01, 2009 6:12 am    Post subject: Reply with quote

DV
что-то не верится, чтобы она кушала только utf8, не поддерживая utf16. Он же проигрывает по производительности
Back to top
View user's profile Send private message
Tony



Joined: 03 Jul 2008
Posts: 98

PostPosted: Thu Feb 25, 2010 7:58 am    Post subject: Reply with quote

Тоже считаю, что не хватает только регулярных выражений, остальное всё необходимое есть.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5167

PostPosted: Thu Feb 25, 2010 8:07 am    Post subject: Reply with quote

Регулярные выражения реализованы через диалог SearchReplace.js в Scripts плагине.
Back to top
View user's profile Send private message Send e-mail
Tony



Joined: 03 Jul 2008
Posts: 98

PostPosted: Thu Feb 25, 2010 8:12 am    Post subject: Reply with quote

Проблема в том, что если использовать AkelPad с флешке на другом компьютере, то нужно запускать Scripts-register, а на vista или seven сразу же проблемы начинаются. Всётаки было бы удобнее, еслибы регулярные выражения были бы в самой программе.
Back to top
View user's profile Send private message
se7h



Joined: 28 Sep 2009
Posts: 764
Location: Minsk, Belarus

PostPosted: Thu Feb 25, 2010 8:55 am    Post subject: Reply with quote

Tony wrote:
Проблема в том, что если использовать AkelPad с флешке на другом компьютере, то нужно запускать Scripts-register, а на vista или seven сразу же проблемы начинаются. Всётаки было бы удобнее, еслибы регулярные выражения были бы в самой программе.


как-то раз столкнулся именно с такой проблемой, акел на флешке и ни о каком Script-register не могло быть и речи
Back to top
View user's profile Send private message
Fr0sT



Joined: 24 Jul 2007
Posts: 875

PostPosted: Thu Feb 25, 2010 4:59 pm    Post subject: Reply with quote

А что, неужели нету нормальной сишной реализации регулярок? Почему так сложно встроить их в Акел?
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5167

PostPosted: Fri Feb 26, 2010 8:57 am    Post subject: Reply with quote

Tony
se7h
Попробуйте портативный режим Scripts в версии 5.0.
Back to top
View user's profile Send private message Send e-mail
se7h



Joined: 28 Sep 2009
Posts: 764
Location: Minsk, Belarus

PostPosted: Fri Feb 26, 2010 9:06 am    Post subject: Reply with quote

Instructor wrote:
Tony
se7h
Попробуйте портативный режим Scripts в версии 5.0.


этого как раз и не хватало Wink
Back to top
View user's profile Send private message
Tony



Joined: 03 Jul 2008
Posts: 98

PostPosted: Fri Feb 26, 2010 1:26 pm    Post subject: Reply with quote

Instructor
Впринципе неплохой выход из ситуации. Спасибо!
Back to top
View user's profile Send private message
guest13



Joined: 08 Jun 2012
Posts: 9

PostPosted: Fri Jun 08, 2012 12:54 pm    Post subject: Reply with quote

Привет всем! Очень прошу помочь мне)
-------------------------------------------
У меня однажды случилась "беда" - форматнул случайно флешку с содержимым. На ней были как текстовые файлы так и исполняемые, архивные файлы и т.д. После восстановления данных с флешки, в основном текстовых файлов, во многие из них записалось содержимое бинарных файлов... вообщем к читабельному тексту, html и другому подобному тексту добавились "кракозябры" типа 36kd녨3 g ǣFA 3ͼ~A |!@. Ну вообщем задачу вы поняли, думаю. Нужно с помощью шаблона "выделить" этот мусор.
--------------------------------------------
Я писал автору редактора, он меня послал сюда (я не знал что есть здесь у вас такой хороший форум) и написал примерное рег. выражение [\u0000-\u0008\u000B-\u000C\u000E-\u001F].*
------
1. Прошу сначала мне объяснить синтаксис этого выражения, по-порядку, что каждая часть этого выражения "делает/ищет", а то как-то отличается это всё от posix/perl...
2. Я проверял это выражение на практике, оно действительно работает, спасибо автору) но хотелось бы доработать его... выражение находит первые же кракозябры и далее до конца файла всё после них выделяет вместе с нужным текстом. Нужно чтобы нужный текст оно оставляло. Прошу помочь мне Embarassed
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2003
Location: Vinnitsa, Ukraine

PostPosted: Fri Jun 08, 2012 1:57 pm    Post subject: Reply with quote

Я не знаю чем именно Вы ищете: встроеным поиском, или скриптом. Оба движка работают на JavaScript-подобных регулярках(не знаю, чьего они стандарта). И регулярка вполне себе понятная.
токены [] в регулярках - означают что то что внутри - список искомого.
\u#### означает поиск символа по его коду(Юникодному), допускается везде в регулярках,
- - знак диапазона, допускается исключительно в [], иначе считается обычным знаком
. - любой символ
* - квантизатор 0 и больше(т.е. .* означает "захватить всё" при жадном захвате).
Всё тут читаемо. Выражение читается так.
Захватить 1 символ, код которого от 0 до 8 либо, 11, 12, 14 до 31 включительно), дальше сколько есть любых символов.
(9 - текстовый символ табуляции, 10,13 - перенос строки, >31 - текстовый знаки в соответствии с ANSI).
А теперь вопрос: Вы внимательно переписывали? Ибо вот та вот "." - лишняя. Без нее регулярка при замене на пустую строку просто удаляла байты, которым явно не место в текстовых файлах.
Естественно, это не есть универсальное решение. Ибо бинарники на то и бинарники что могут содержать любые символы, в том числе вполне читаемые текстовые последовательности.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
guest13



Joined: 08 Jun 2012
Posts: 9

PostPosted: Sat Jun 09, 2012 4:08 pm    Post subject: Reply with quote

Нашёл очень хороший сайт unicode-table.com, который мне помог разобраться с кодами символов, в принципе это всё есть в таблице символов виндовс... Я думаю проще будет выделить то что мне нужно, нежели то, что не нужно)

FeyFre wrote:

А теперь вопрос: Вы внимательно переписывали? Ибо вот та вот "." - лишняя. Без нее регулярка при замене на пустую строку просто удаляла байты, которым явно не место в текстовых файлах.


Да, внимательно переписывал. Не понял немного про "без неё". Какие такие байты, которым не место в тексте регулярка бы удаляла?
Выражение [...]. находит искомый символ из квадратных скобок + любой символ после него.
Выражение [...].* выделяет всё до конца файла после искомого символа из квадратных скобок.
А вот выражение [...]* у меня ничего не находит, пользуюсь стандартным поиском редактора. При поиске вниз ничего не находит, при поиске вверх зависает AkelPad ) Что это выражение делает? Ищет 0 или более раз символ в квадратных скобках?
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5167

PostPosted: Fri Jun 15, 2012 8:52 pm    Post subject: Reply with quote

guest13 wrote:
...при поиске вверх зависает AkelPad...
Тестовая
Back to top
View user's profile Send private message Send e-mail
VladSh



Joined: 29 Nov 2006
Posts: 2584
Location: Киев, Русь

PostPosted: Sat Jun 16, 2012 10:55 pm    Post subject: Reply with quote

Вопросец по регуляркам /задаю здесь, т.к. другие в основном здесь задавали, а хотелось бы выделить эти вопросы в отдельную тему и учиться!)/
Значит есть строка, в начале могут быть пробелы/табуляции, а могут не быть. И наоборот, все эти "пустые символы" могут быть, а текста нет.
Так вот нужна такая регулярка, которая бы возвращала в $1 все "пустые символы" из начала строки, а в $2 - все значащие символы, идущие после начальных "пустых".
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page Previous  1, 2, 3, 4, 5, 6, 7  Next
Page 2 of 7

 
Jump to:  
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


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group