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 

Релиз AkelPad 4.7.4
Goto page Previous  1, 2, 3, 4  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
Infocatcher



Joined: 06 Aug 2007
Posts: 1616

PostPosted: Tue Apr 10, 2012 11:16 pm    Post subject: Reply with quote

Instructor wrote:
Почему конструкция "[\s\S]*" должна остановится на кавычке?
Не знаю. Но в js находит. Very Happy
Вон даже на википедии примеры с <.*> что-то находят.
А у нас пока что вот такое.

Берем SearchReplace.js и некий текст, заканчивающийся на q.
[\s\S]*q – найдет весь текст
[\s\S]*?q – найдет весь текст до первой «q»
Back to top
View user's profile Send private message Visit poster's website
Infocatcher



Joined: 06 Aug 2007
Posts: 1616

PostPosted: Wed Apr 11, 2012 5:32 am    Post subject: Reply with quote

Нечто про «почему» можно почитать тут: http://pcre.org/pcre.txt («THE STANDARD MATCHING ALGORITHM»), только форма изложения что-то не фонтан.
Back to top
View user's profile Send private message Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5324

PostPosted: Wed Apr 11, 2012 5:42 am    Post subject: Reply with quote

Infocatcher
Конструкция по логике "[\s\S]*" это аналог ".*", но текущая реализация особо обрабатывает только ".*", но не "[\s\S]*".

Quote:
Вон даже на википедии примеры с <.*> что-то находят.
".*" должен обрабатывается как положено.
Back to top
View user's profile Send private message Send e-mail
Infocatcher



Joined: 06 Aug 2007
Posts: 1616

PostPosted: Wed Apr 11, 2012 5:53 am    Post subject: Reply with quote

Instructor wrote:
Конструкция по логике "[\s\S]*" это аналог ".*"
Вообще, .* не находит переводы строк.
Другое дело, что сейчас вообще ничего не находит переводы строк. Very Happy
Вдобавок могут быть вариации с [^нечто]*

Кстати, .* работает не как положено, а как .*? Smile
Back to top
View user's profile Send private message Visit poster's website
Infocatcher



Joined: 06 Aug 2007
Posts: 1616

PostPosted: Wed Apr 11, 2012 6:02 am    Post subject: Reply with quote

Пожелание: к поддержке $1, $2, ... добавить $& для вставки при замене всей найденной подстроки.
Back to top
View user's profile Send private message Visit poster's website
FeyFre



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

PostPosted: Wed Apr 11, 2012 7:16 am    Post subject: Reply with quote

Quote:
Конструкция по логике "[\s\S]*" это аналог ".*", но текущая реализация особо обрабатывает только ".*", но не "[\s\S]*".
Как-то получается баговато. Идентичные регулярные выражения должни найти одинаковый текст. Хотя нужно уточнить насчет "сравниваемости" этих выражений, но должны считаться идентичными. Да и "жадность" какая-то неопределенная: то * жадная, то не жадная.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Infocatcher



Joined: 06 Aug 2007
Posts: 1616

PostPosted: Wed Apr 11, 2012 7:44 am    Post subject: Reply with quote

Не работает нежадный поиск вида
.{3,}?

Находит всю строку вместо трех символов:
.{2,3}
Back to top
View user's profile Send private message Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5324

PostPosted: Wed Apr 11, 2012 1:52 pm    Post subject: Reply with quote

FeyFre wrote:
Как-то получается баговато...
Значит есть куда стремиться Smile
Back to top
View user's profile Send private message Send e-mail
LEN



Joined: 21 Aug 2008
Posts: 28

PostPosted: Wed Apr 11, 2012 8:15 pm    Post subject: Reply with quote

Перестал понимать что-либо!
Пытаюсь через Поиск и Замену добавить в конец всех строк свой текст:

Что: (.*)
Чем: $1_текст
[v] Регулярные выражения
(*) С начала

А вместо этого получаю:
$1_текст

Что я делаю не так?
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5324

PostPosted: Thu Apr 12, 2012 1:21 am    Post subject: Reply with quote

LEN
Сейчас при использовании регулярных выражений замена работает по всему тексту, а поиск построчный.
Back to top
View user's profile Send private message Send e-mail
LEN



Joined: 21 Aug 2008
Posts: 28

PostPosted: Thu Apr 12, 2012 8:35 pm    Post subject: Reply with quote

Instructor

Писк-то находит, но почему не заменяет?
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5324

PostPosted: Fri Apr 13, 2012 10:41 pm    Post subject: Reply with quote

Infocatcher wrote:
Кстати, .* работает не как положено, а как .*? Smile
Если будет яснее, то как положено ... автором.

Quote:
Пожелание: к поддержке $1, $2, ... добавить $& для вставки при замене всей найденной подстроки.
Реализовано. Помимо "$&", "$0" действует аналогичным образом.

Quote:
Не работает нежадный поиск вида
.{3,}?
В текущей реализации нету разделения на нежадный/жадный. Конструкции ".*", ".{3,}" и т.п. всегда "нежадные".

Quote:
Находит всю строку вместо трех символов:
.{2,3}

Quote:
^\d -> -
срежет все цифры в начале текста, а должно только первую.

Quote:
4. При замене не поддерживается запоминание содержимого скобок.

LEN wrote:
Писк-то находит, но почему не заменяет?

Тестовая
Back to top
View user's profile Send private message Send e-mail
Eugeny



Joined: 17 Jan 2009
Posts: 2

PostPosted: Wed Apr 25, 2012 9:30 am    Post subject: Reply with quote

Если в редакторе включён режим переноса длинных строк, то при замене "(.*)" на "$&_текст" происходит замена на каждой отображаемой строке, а не на каждой реальной.

Я так понял, замена происходит только для тех случаев, когда паттерн соответствует целой строке. Например замена паттерна "^.+=" на "$&_текст" не происходит, и не происходит вообще ничего, никакой реакции программы. Проверить можно на примере любого ini файла.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5324

PostPosted: Thu May 03, 2012 6:24 pm    Post subject: Reply with quote

На sourceforge какие-то проблемы с сайтом - выпустить релиз пока не получается. Выкладываю текущую версию для проверки корректности работы с регулярными выражениями.

Два отличительных правила: поиск/замена построчные и поиск не жадный.

Тестовая
Back to top
View user's profile Send private message Send e-mail
Infocatcher



Joined: 06 Aug 2007
Posts: 1616

PostPosted: Fri May 04, 2012 5:39 am    Post subject: Reply with quote

Instructor wrote:
для проверки корректности работы с регулярными выражениями.

Что: http
Чем: [$0]
Найти далее – Заменить – AkelPad падает

Quote:
Описание
Неправильный путь приложения: %путь%\AkelPad.exe

Сигнатура проблемы
Имя проблемного события: APPCRASH
Имя приложения: AkelPad.exe
Версия приложения: 4.7.5.0
Отметка времени приложения: 4fa2c8e6
Имя модуля с ошибкой: AkelPad.exe
Версия модуля с ошибкой: 4.7.5.0
Отметка времени модуля с ошибкой: 4fa2c8e6
Код исключения: c0000005
Смещение исключения: 0002e4a9
Версия ОС: 6.1.7601.2.1.0.256.4
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789

Дополнительные сведения о проблеме
Код черпака: 2959763514


С «заменить все» не падает.
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  Next
Page 3 of 4

 
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