View previous topic :: View next topic |
Author |
Message |
Serge Yolkin
Joined: 27 Jul 2010 Posts: 294
|
Posted: Tue Nov 05, 2013 3:19 am Post subject: |
|
|
Skif_off wrote: | Можете порекомендовать какой-нибудь из конструкторов регулярных выражений, максимально похожий на AkelPad? | Если "похожий" - в смысле результата, а не внешнего вида, то тут в пору прсить, чтобы Instructor плагин написал, использующий ту же реализацию. Кстати, а QSearch какую реализацию регулярок использует? |
|
Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 1015 Location: Kyiv, Ukraine
|
Posted: Tue Nov 05, 2013 9:11 am Post subject: |
|
|
Serge Yolkin wrote: | Кстати, а QSearch какую реализацию регулярок использует? |
Регулярки - акелпадовские.
QSearch-Rus.txt wrote: | v.5.2 (Ноябрь 2012)
* продолжение 5.1
+ поиск с регулярными выражениями (используя их реализацию в AkelPad) |
|
|
Back to top |
|
 |
Serge Yolkin
Joined: 27 Jul 2010 Posts: 294
|
Posted: Tue Nov 05, 2013 9:22 am Post subject: |
|
|
DV
Ну, практически готовый, если не конструктор, то калькулятор регулярных выражений... |
|
Back to top |
|
 |
YuS
Joined: 15 Sep 2013 Posts: 434
|
Posted: Thu Nov 07, 2013 6:28 pm Post subject: |
|
|
Планируется ли реализация поиска по условию:
Code: |
(?(?=если)то|иначе)
(?(n)то|иначе) |
?
Иногда очень не хватает... |
|
Back to top |
|
 |
Drugmix
Joined: 08 Apr 2013 Posts: 582 Location: Win7SP1x64, APx64
|
Posted: Thu Nov 07, 2013 6:40 pm Post subject: |
|
|
YuS
они же вроде уже реализованы? В справке посмотри (?=) и (?!), а также lookbehind'ы. |
|
Back to top |
|
 |
YuS
Joined: 15 Sep 2013 Posts: 434
|
Posted: Thu Nov 07, 2013 6:45 pm Post subject: |
|
|
Drugmix wrote: | YuS
они же вроде уже реализованы? В справке посмотри (?=) и (?!) (а также lookbehind'ы. |
Это шаблоны, самые обычные шаблоны просмотра вперед/назад, а поиск по условию - немного другую функцию выполняет. |
|
Back to top |
|
 |
YuS
Joined: 15 Sep 2013 Posts: 434
|
Posted: Thu Nov 07, 2013 7:00 pm Post subject: |
|
|
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 |
|
 |
yozhic
Joined: 20 Jun 2011 Posts: 214 Location: Электросталь
|
Posted: Fri Nov 15, 2013 1:26 pm Post subject: |
|
|
Здесь текст и регексп. Akel версии 4.8.6 dev (скачал сегодня по ссылке тестовая, от 21-го кажется). Ничего не находит. А должно. Проверял в других редакторах. |
|
Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 6250
|
Posted: Fri Nov 15, 2013 3:39 pm Post subject: |
|
|
yozhic
AkelHelp-Rus.htm wrote: | - Квантификаторы регулярных выражений (*, +, {n,}) являются по умолчанию жадными (кроме одинарной точки, например, ".*" или ".{5,10}"). Чтобы сделать их нежадными (старый принцип), используется "?" после квантификатора, например, "\d*?".
- Жадные регулярные выражения AkelPad'а выполняются последовательно. Например, шаблон "ab?b" в "abc" не имеет совпадений, т.к. "ab?" соответствует "ab" и последующее "b" не имеет совпадений. Корректный шаблон, в данном случае, будет "abb?". |
|
|
Back to top |
|
 |
yozhic
Joined: 20 Jun 2011 Posts: 214 Location: Электросталь
|
Posted: Fri Nov 15, 2013 4:16 pm Post subject: |
|
|
Instructor
Спасибо, всё понял. Пошёл повторять матчасть. |
|
Back to top |
|
 |
Skif_off
Joined: 20 Oct 2013 Posts: 1114
|
Posted: Sun Dec 01, 2013 11:07 pm Post subject: |
|
|
Прошу прощения, несколько затупил, подскажите, пожалуйста, как добавить к, например, такому выражению \\[a-z]*@[a-z]+ условие "но всего не менее 3х символов"? |
|
Back to top |
|
 |
YuS
Joined: 15 Sep 2013 Posts: 434
|
Posted: Mon Dec 02, 2013 6:25 pm Post subject: |
|
|
Skif_off wrote: | как добавить к, например, такому выражению \\[a-z]*@[a-z]+ условие "но всего не менее 3х символов"? |
Если я правильно понял вопрос, то:
если же речь обо всем выражении целиком, то там и так должно быть, при самом минимуме совпадений, 3 символа:
"\@" - это два символа и "[a-z]+" - это, как минимум, 1 символ, т.е. итого 3 |
|
Back to top |
|
 |
Skif_off
Joined: 20 Oct 2013 Posts: 1114
|
Posted: Mon Dec 02, 2013 7:49 pm Post subject: |
|
|
YuS
Речь о выражении целиком, торопился сформулировать мысль и написал первое пришедшее в голову число, пусть будет n. |
|
Back to top |
|
 |
YuS
Joined: 15 Sep 2013 Posts: 434
|
Posted: Mon Dec 02, 2013 8:40 pm Post subject: |
|
|
Skif_off wrote: | Речь о выражении целиком, торопился сформулировать мысль и написал первое пришедшее в голову число, пусть будет n. |
Тогда на целое выражение сделать такое условие не получится, придется, всё же менять само выражение, как-то так:
ну, а если требуется необходимое количество именно по всем символьным классам (остальные символы ведь указаны жестко), то:
Code: | \\[a-z]{n,}@[a-z]{n,} |
если же применить подобное к целому выражению:
Code: | (\\[a-z]*@[a-z]+){n,} |
то получится, что выражение должно совпасть n раз и более.
Т.о., по заданному условию, это не совсем то, что хотели получить, значит необходимо оперировать указанием количества по каждому символу выражения или символьному классу. |
|
Back to top |
|
 |
Skif_off
Joined: 20 Oct 2013 Posts: 1114
|
Posted: Mon Dec 02, 2013 10:02 pm Post subject: |
|
|
YuS
Тогда не захватится \xxx@x
Code: | \\[a-z]{n,}@[a-z]{n,} |
не захватится \@xxx
Суть уловил, спасибо за пояснения, заодно нашел недочет в подсветке LaTeX  |
|
Back to top |
|
 |
|
|
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
|
Powered by phpBB © 2001, 2005 phpBB Group
|