Bugs / Найденные баги (1)

Russian main discussion
Locked
  • Author
  • Message
Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

Текст:

Code: Select all

1
2
1
2
Найти: (?<=1\n)2
Заменить: 3
По одному меняет. Если нажать Replace All, то сразу окно «Count of changes: 0». AkelPad dev от 22.10.2015.

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

yozhic

Code: Select all

(?<=1$\n)2

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

yozhic wrote: По одному меняет. Если нажать Replace All, то сразу окно «Count of changes: 0». AkelPad dev от 22.10.2015.
не воспроизводится
Image

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

bogser wrote:AkelPad заметно подтормаживает в Remote Desktop'е при переключении на его окно. Подобного не наблюдается для Notepad'а и Notepad++.
Не воспроизводится на Windows 2003 Server и Windows 2008 Server. Попробуйте PaintOptions с флагом 1.
yozhic wrote:По одному меняет. Если нажать Replace All, то сразу окно «Count of changes: 0». AkelPad dev от 22.10.2015.
Тестовая (используйте только для проверки).
Last edited by Instructor on Thu Nov 19, 2015 7:02 am, edited 1 time in total.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

YuS
(?<=1\n)2 а не (?<=\n)2

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

FeyFre wrote: (?<=1\n)2 а не (?<=\n)2
А, вон оно что :) Спасибо, за поправку, теперь увидел...
Но тогда более правильный вариант Cuprum написал здесь, но на новой тестовой он тоже не работает...
Хотя, правильней даже так было бы:

Code: Select all

(?<=1$\r\n)2

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

Instructor
Тестовая
Теперь порядок.
Попробовал также (?<=1$\n)2 : dev-версия (которая у меня) ничего не находит, если нажать Find; и всё заменяет, если нажать Replace All :) Новая тестовая и не находит, и не заменяет.
используйте только для проверки
Ух! Это, наверное, значит, что в новом релизе будет много сюрпризов :)

YuS
Вроде как \n в AkelPad это «Любая новая строка. Для поиска Unix новой строки используйте '\x0a'.» Если я ничего не путаю (что вполне возможно).

Cuprum
(?<=1$\n)2 – разве не «масло масляное»? И так конец строки, и ещё якорь. Может я недопонимаю чего?

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

yozhic wrote: YuS
Вроде как \n в AkelPad это «Любая новая строка. Для поиска Unix новой строки используйте '\x0a'.» Если я ничего не путаю (что вполне возможно).
Строго говоря, не вдаваясь в исторические экскурсы во времена печатных машинок и всяких телетайпов, в Windows конец строки текстового файла обозначается парой символов CR и LF, что соответствует в эскейп-символах ASCII \r и \n соответственно:
Image
А вот в Unix, как раз, достаточно \n для разделения строк...
Управляющие символы
yozhic wrote:
Cuprum
(?<=1$\n)2 – разве не «масло масляное»? И так конец строки, и ещё якорь. Может я недопонимаю чего?
Нет, не масло, потому как $ - обозначает конец строки и он там присутствует, хоть и не является печатным/видимым.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

yozhic wrote:Попробовал также (?<=1$\n)2 : dev-версия (которая у меня) ничего не находит, если нажать Find; и всё заменяет, если нажать Replace All :) Новая тестовая и не находит, и не заменяет.
Тестовая (используйте только для проверки).

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

Instructor
Теперь и находит, и заменяет. Спасибо Вам.

YuS
Я только хотел сказать, что AkelPad в этих 3-х случаях Image и метасимволом возврата каретки, и метасимволом перевода строки матчит новую строку какая бы она ни была. А PowerGrep, например, по \n не матчит \r. Поэтому для AkelPad запись \r\n мне показалась избыточной.
Также и $\n. Понятно, что работает. Но разве не избыточная запись? А где ещё может находиться \n (в AkelPad) как не после конца строки? Только Вы не сердитесь, пожалуйста. Это я не для того, чтоб поспорить, но хочется получше уяснить логику регулярок :)

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

yozhic wrote: YuS
... и метасимволом возврата каретки, и метасимволом перевода строки матчит новую строку какая бы она ни была.
Это просто надо считать особенностью реализации. Возможно, это сделано для упрощения, либо для большей универсальности из-за возможности в AP работать с разными форматами строк (для того, чтобы регэкспы работали независимо от формата строки) .
yozhic wrote: А PowerGrep, например, по \n не матчит \r. Поэтому для AkelPad запись \r\n мне показалась избыточной.
Именно поэтому, лучше не привыкать к такому упрощенному использованию, т.к. во многих реализациях это будет неприменимо, т.е. шаблон, который работает в AP, не будет работать в других программах и тогда можно будет долго и упорно ломать голову почему так происходит, особенно если шаблон не будет простым.
yozhic wrote:Только Вы не сердитесь, пожалуйста. Это я не для того, чтоб поспорить, но хочется получше уяснить логику регулярок :)
Да с чего бы мне сердиться? :)
В принципе, в AP вполне можно использовать то, что реализовано, только надо не забывать, что это особенность реализации именно в AP.
И уж точно это не баг, поэтому, наверное, нам пора заканчивать этот оффтоп... :)

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Warning!
FindReplaceEx.js version 2015-10-31 or earlier is incompatible with AkelPad 4.9.7 dev. Do not use it. Please wait for the update.

Offline
Posts: 6
Joined: Tue Jun 28, 2011 12:22 pm

Post by bogser »

Instructor wrote:
bogser wrote:AkelPad заметно подтормаживает в Remote Desktop'е при переключении на его окно. Подобного не наблюдается для Notepad'а и Notepad++.
Не воспроизводится на Windows 2003 Server и Windows 2008 Server. Попробуйте PaintOptions с флагом 1.
PaintOptions не помог.
Но поигрался с этим делом еще немного, и тут осенило, что Akelpad-то я ставил достаточно давно. Снес установленную 4.8.1 со всеми настройками, поставил последнюю версию 4.9.6, и тормоза исчезли.

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

Instructor
Решил сюда написать, т.к. (как мне показалось) дело тут не в Coder. Начиная с тестовой от 20 октября поломалась подсветка по правилу:

Code: Select all

16389	0	0	0	"[ex]"	"[ex]"	"\"	""	""	0	0
16389	3	#777777	#DDFFFF	"[ex]"	"[/ex]"	"\"	""	""	0	0
Image
Coder.dll 19.1 с тестовой от 19 октября подсвечивает это правило (первая строка на снимке). Тот же самый Coder, но с тестовой от 20 октября, перестаёт подсвечивать (вторая строка на снимке).

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

yozhic
Coder-Rus.txt wrote: - Если родитель (Parent ID) равен 0 (по умолчанию):
- Внутри не оформленного диапазона ("Quotes:", "QuotesRE:"), правило обрабатывается.
- Внутри оформленного диапазона ("Quotes:", "QuotesRE:"), правило игнорируется.
Т.е., чтобы внутри "[ex]" "[ex]" не обрабатывался "[ex]" "[/ex]", нужно указать оформление, например:
16389 1 0 0 "[ex]" "[ex]" "" "" "" 0 0
Locked