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, ... 14, 15, 16  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5454

PostPosted: Sat Oct 02, 2010 5:45 am    Post subject: Reply with quote

Fr0sT
Диалог поиска/замены любые переносы воспринимает как \[000d] или \n.
Back to top
View user's profile Send private message Send e-mail
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Sat Oct 02, 2010 8:18 pm    Post subject: Reply with quote

Instructor, я правильно понимаю, что 0x0D 0x0D 0x0A средствами Акеля никак не обработаешь?
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5454

PostPosted: Sun Oct 03, 2010 3:42 am    Post subject: Reply with quote

Fr0sT
Как я писал выше: чтобы найти \r, \n, \r\n или \r\r\n необходимо в строке поиска указать "\n" или "\[000d]".
Back to top
View user's profile Send private message Send e-mail
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Sun Oct 03, 2010 1:27 pm    Post subject: Reply with quote

О, сработало. Благодарствую!
Back to top
View user's profile Send private message
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Mon Nov 15, 2010 1:12 pm    Post subject: Reply with quote

Было бы шикарно иметь еще символ \w, который соответствовал бы любой последовательности пробелов, табов и прочего. Увы, это наверняка потребует серьезного переделывания кода (т.к. предыдущие спецсимволы обозначают один символ)...
Back to top
View user's profile Send private message
olDjeka



Joined: 08 Mar 2008
Posts: 18

PostPosted: Mon Mar 14, 2011 9:12 pm    Post subject: Reply with quote

Более-менее понял работу "Заменять на функцию" в SearchRepalce.js, но при пользовании скриптом заметил следующее (нумерация в порядке приоритета, для меня Smile ):
1. Поле Что: ограничено длинной в 255 сиволов. Хотелось бы в разы больше, а лучше без ограничения (с возможностью указания длинны в настройках скрипта). При удалении из 4 Mb файла в формате 1200 (UTF-16LE) всех повторяющихся симолов придётся обновлять поле примерно 8000 раз Shocked
2. Не запоминается пустое поле Чем: (когда вместо замены надо произвести удаление) и приходится вновь и вновь очищать это поле.
3. Если поле Что: содержит выражение [\Q-\E], между \Q и \E стоит символ с Hex-кодом 002D в формате 1200 (UTF-16LE), то возникает ошибка


Возможно такое случается и с некоторыми другими символами, но не зафиксировал.
4. Не получается экранировать последовательность символов заключив её между \Q и \E. С метасимволами, это или приводит к ошибке, или ничего не находит, или находит Q и E (зависит от входящих в последовательность метасимволов).
5. Хотелось бы иметь настраиваемый префикс и суффикс, как в плагине HexSel, чтобы можно было использовать часть некоторых регов как шаблон.
6. При вводе некоторых символов строка "деформируется". Hex-код некоторых из них в формате 1200 (UTF-16LE): 002D, 202B, 202E, FB2C, FC2C, FD2C, FE2C.

p.s. Всё происходило при редактировании файла формата 1200 (UTF-16LE).


Last edited by olDjeka on Sat Dec 01, 2012 6:41 pm; edited 2 times in total
Back to top
View user's profile Send private message
Infocatcher



Joined: 06 Aug 2007
Posts: 1639

PostPosted: Mon Mar 14, 2011 10:53 pm    Post subject: Reply with quote

Квадратные скобки задают перечень символов, тире служит для перечисления групп (например, [0-9], [a-z], [а-яё]), если код символа слева от тире будет меньше, чем справа, то будет ошибка:
/[0-0]/ – Ok
/[1-0]/ – RegExpError Недопустимый диапазон в наборе знаков
/[\Q-\E]/ – неправильный диапазон от «Q» до «\»
Коды идут как в UTF-16LE.
http://javascript.ru/basic/regular-expression
Back to top
View user's profile Send private message Visit poster's website
olDjeka



Joined: 08 Mar 2008
Posts: 18

PostPosted: Tue Mar 15, 2011 8:37 am    Post subject: Reply with quote

Про скобки понятно, в комментариях к указанной статье нашёл ответ на вопросы 3 и 4.


В книге Дэвида Флэнагана(JS подробное руководство, 5 изд) написано следующее:

11.1.7. Средства регулярных выражений Perl, не поддерживаемые в JavaScript
Мы говорили, что ECMAScript v3 определяет относительно полное подмножество средств регулярных выражений из Perl 5. Развитые средства Perl, не поддерживаемые ECMAScript, включают следующее:
• флаги s (однострочный режим) и x (расширенный синтаксис);
• управляющие последовательности \a, \e, \l, \u, \L, \U, \E, \Q, \A, \Z, \z и \G;
• (?<= – положительное условие на предыдущие символы и отрицатель
ное условие на предыдущие символы;
• комментарий (?# и прочий расширенный синтаксис (?.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5454

PostPosted: Wed Mar 16, 2011 6:47 am    Post subject: Reply with quote

olDjeka
1. Ну эту задачу проще отдельным скриптом делать: создать массив размером 65535. И пройтись по тексту проверяя символ уже был найден или нет.
2. Исправлено.
5. Пример?
6. Видимо особенность стандартного EDIT контрола.
Back to top
View user's profile Send private message Send e-mail
olDjeka



Joined: 08 Mar 2008
Posts: 18

PostPosted: Wed Mar 16, 2011 10:29 pm    Post subject: Reply with quote

Instructor
1. Не очень понял как это осуществить Rolling Eyes (со скриптами "мы" на "Вы")
2. Спасибо Exclamation
5. Например, если требуется произвести замену строки (символа) XX находящейся между определёнными строками (символами): строки X1 на строку 2, строки X3 на строку 4, и т.д. -->>>


За одно обнаружилась проблема привязки кнопок при расширении окна (на верхней картинке).
6. Спасибо, понятно (сразу не проверил что по Ctrl+R тоже самое Embarassed).

p.s. Везде стоит "Сообщать мне о получении ответа", e-mail стоит верный, а толку нуль Sad
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5454

PostPosted: Thu Mar 17, 2011 5:36 am    Post subject: Reply with quote

olDjeka
5. Регулярные выражения все это позволяют см. ссылку Infocatcher'а. Например: найти "123" находящийся между "abc" и "dfg" и заменить на x123x.
Что: abc.*(123).*dfg
Чем: "x"+$1+"x"
Флаги: "Заменять на функцию"
Quote:
За одно обнаружилась проблема привязки кнопок при расширении окна (на верхней картинке).
Не воспроизводится.
Back to top
View user's profile Send private message Send e-mail
olDjeka



Joined: 08 Mar 2008
Posts: 18

PostPosted: Thu Mar 17, 2011 8:43 am    Post subject: Reply with quote

Instructor
5. Каждый раз при имзменении заменяемого приходится тыкатся по полю Что:
При наличии обрамления заменяешь всё поле.
Что: 123
Чем: "x"+$1+"x"
Префикс: abc.*(
Суффикс: ).*dfg
Quote:
Не воспроизводится

WinXPSP3+все обновы ПО на 16.03.2011.
Back to top
View user's profile Send private message
Infocatcher



Joined: 06 Aug 2007
Posts: 1639

PostPosted: Thu Mar 17, 2011 4:57 pm    Post subject: Reply with quote

Instructor wrote:
Что: abc.*(123).*dfg
Чем: "x"+$1+"x"
Флаги: "Заменять на функцию"
Можно без функций:
Что: abc.*(123).*dfg или abc.*?(123).*?dfg
Чем: x$1x
Back to top
View user's profile Send private message Visit poster's website
Alex digger



Joined: 07 Aug 2011
Posts: 3

PostPosted: Sun Aug 07, 2011 11:17 am    Post subject: Reply with quote

Приходится часто пользоваться заменой кавычек-елочек «» на кавычки-лапки "". Было бы замечательно, если бы эту замену можно было выполнять не по отдельности для каждой кавычки, а сразу для пары кавычек. К примеру, в форму замены вставляем «*» - и автоматически меняются открывающая и закрывающая кавычки, не затрагивая текст между ними. Как такое можно устроить?
Back to top
View user's profile Send private message
KDJ



Joined: 06 Mar 2010
Posts: 1414
Location: Poland

PostPosted: Sun Aug 07, 2011 12:30 pm    Post subject: Reply with quote

Alex digger wrote:
Приходится часто пользоваться заменой кавычек-елочек «» на кавычки-лапки ""...

You do this by using SearchReplace.js script and regular expression.
Type:
What (Что):    "([\s\S]*?)"
With (Чем):     «$1»
Back to top
View user's profile Send private message
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, ... 14, 15, 16  Next
Page 2 of 16

 
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