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



Joined: 27 Jul 2010
Posts: 250

PostPosted: Tue Nov 05, 2013 3:19 am    Post subject: Reply with quote

Skif_off wrote:
Можете порекомендовать какой-нибудь из конструкторов регулярных выражений, максимально похожий на AkelPad?
Если "похожий" - в смысле результата, а не внешнего вида, то тут в пору прсить, чтобы Instructor плагин написал, использующий ту же реализацию. Кстати, а QSearch какую реализацию регулярок использует?
Back to top
View user's profile Send private message
DV



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

PostPosted: Tue Nov 05, 2013 9:11 am    Post subject: Reply with quote

Serge Yolkin wrote:
Кстати, а QSearch какую реализацию регулярок использует?

Регулярки - акелпадовские.
QSearch-Rus.txt wrote:
v.5.2 (Ноябрь 2012)
* продолжение 5.1
+ поиск с регулярными выражениями (используя их реализацию в AkelPad)
Back to top
View user's profile Send private message
Serge Yolkin



Joined: 27 Jul 2010
Posts: 250

PostPosted: Tue Nov 05, 2013 9:22 am    Post subject: Reply with quote

DV
Ну, практически готовый, если не конструктор, то калькулятор регулярных выражений...
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 92

PostPosted: Thu Nov 07, 2013 6:28 pm    Post subject: Reply with quote

Планируется ли реализация поиска по условию:
Code:

(?(?=если)то|иначе)
(?(n)то|иначе)

?
Иногда очень не хватает...
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 383

PostPosted: Thu Nov 07, 2013 6:40 pm    Post subject: Reply with quote

YuS
они же вроде уже реализованы? В справке посмотри (?=) и (?!), а также lookbehind'ы.
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 92

PostPosted: Thu Nov 07, 2013 6:45 pm    Post subject: Reply with quote

Drugmix wrote:
YuS
они же вроде уже реализованы? В справке посмотри (?=) и (?!) (а также lookbehind'ы.

Это шаблоны, самые обычные шаблоны просмотра вперед/назад, а поиск по условию - немного другую функцию выполняет.
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 92

PostPosted: Thu Nov 07, 2013 7:00 pm    Post subject: Reply with quote

Infocatcher wrote:

А вот поиск точки расширения с учетом того, что ее может не быть, у меня не заработал. Скажем,
Code:
(?<=^.{12}).{2,}(?=\.[^\.]{1,9}$|.{9}$)

найдет не точку, а «.{9}$».

Работал бы поиск по условию, можно было бы как-то так организовать:
Что: (^[^\n.]{20})[^.]*(\.)?((?(2).{1,}|)$)
Чем: \1..\2\3

Это относительно вот этого вопроса:
Quote:
как привести имя файла, например, LinesSelectCopyMoveDuplicate.js к виду LinesSelectCopy..js, ограничив максимальную длину пусть 20 символами и сохранив расширение (в т.ч. "не стандартные" 4 и более символов (типа .jpeg))?
Back to top
View user's profile Send private message
yozhic



Joined: 20 Jun 2011
Posts: 43
Location: Электросталь

PostPosted: Fri Nov 15, 2013 1:26 pm    Post subject: Reply with quote

Здесь текст и регексп. Akel версии 4.8.6 dev (скачал сегодня по ссылке тестовая, от 21-го кажется). Ничего не находит. А должно. Проверял в других редакторах.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5293

PostPosted: Fri Nov 15, 2013 3:39 pm    Post subject: Reply with quote

yozhic
AkelHelp-Rus.htm wrote:
- Квантификаторы регулярных выражений (*, +, {n,}) являются по умолчанию жадными (кроме одинарной точки, например, ".*" или ".{5,10}"). Чтобы сделать их нежадными (старый принцип), используется "?" после квантификатора, например, "\d*?".
- Жадные регулярные выражения AkelPad'а выполняются последовательно. Например, шаблон "ab?b" в "abc" не имеет совпадений, т.к. "ab?" соответствует "ab" и последующее "b" не имеет совпадений. Корректный шаблон, в данном случае, будет "abb?".
Back to top
View user's profile Send private message Send e-mail
yozhic



Joined: 20 Jun 2011
Posts: 43
Location: Электросталь

PostPosted: Fri Nov 15, 2013 4:16 pm    Post subject: Reply with quote

Instructor
Спасибо, всё понял. Пошёл повторять матчасть.
Back to top
View user's profile Send private message
Skif_off



Joined: 20 Oct 2013
Posts: 270

PostPosted: Sun Dec 01, 2013 11:07 pm    Post subject: Reply with quote

Прошу прощения, несколько затупил, подскажите, пожалуйста, как добавить к, например, такому выражению \\[a-z]*@[a-z]+ условие "но всего не менее 3х символов"?
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 92

PostPosted: Mon Dec 02, 2013 6:25 pm    Post subject: Reply with quote

Skif_off wrote:
как добавить к, например, такому выражению \\[a-z]*@[a-z]+ условие "но всего не менее 3х символов"?

Если я правильно понял вопрос, то:
Code:
\\[a-z]*@[a-z]{3,}

если же речь обо всем выражении целиком, то там и так должно быть, при самом минимуме совпадений, 3 символа:
"\@" - это два символа и "[a-z]+" - это, как минимум, 1 символ, т.е. итого 3
Back to top
View user's profile Send private message
Skif_off



Joined: 20 Oct 2013
Posts: 270

PostPosted: Mon Dec 02, 2013 7:49 pm    Post subject: Reply with quote

YuS
Речь о выражении целиком, торопился сформулировать мысль и написал первое пришедшее в голову число, пусть будет n.
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 92

PostPosted: Mon Dec 02, 2013 8:40 pm    Post subject: Reply with quote

Skif_off wrote:
Речь о выражении целиком, торопился сформулировать мысль и написал первое пришедшее в голову число, пусть будет n.

Тогда на целое выражение сделать такое условие не получится, придется, всё же менять само выражение, как-то так:
Code:
\\[a-z]*@[a-z]{n,}

ну, а если требуется необходимое количество именно по всем символьным классам (остальные символы ведь указаны жестко), то:
Code:
\\[a-z]{n,}@[a-z]{n,}


если же применить подобное к целому выражению:
Code:
(\\[a-z]*@[a-z]+){n,}

то получится, что выражение должно совпасть n раз и более.
Т.о., по заданному условию, это не совсем то, что хотели получить, значит необходимо оперировать указанием количества по каждому символу выражения или символьному классу.
Back to top
View user's profile Send private message
Skif_off



Joined: 20 Oct 2013
Posts: 270

PostPosted: Mon Dec 02, 2013 10:02 pm    Post subject: Reply with quote

YuS
Code:
\\[a-z]*@[a-z]{n,}

Тогда не захватится \xxx@x
Code:
\\[a-z]{n,}@[a-z]{n,}

не захватится \@xxx
Суть уловил, спасибо за пояснения, заодно нашел недочет в подсветке LaTeX Smile
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 ... 5, 6, 7 ... 14, 15, 16  Next
Page 6 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