Size: a a a

2019 December 10

S

Sergey in Modern::Perl
Cyrill Novgorodcev
"[^"]+?(\([^"]*\))[^"]*"
Нерекурсивненько
источник

CN

Cyrill Novgorodcev in Modern::Perl
а зачем?
источник

CN

Cyrill Novgorodcev in Modern::Perl
я прочитал условие задачи
источник

CN

Cyrill Novgorodcev in Modern::Perl
ну, и это для pcre, для других может не сработать :)
источник

VO

Vyacheslav Olkhovchenkov in Modern::Perl
по кавычки -- часть текста условия
источник

IB

Ivan Bessarabov in Modern::Perl
Александр Поляков
Привет всем!
Есть гуру регулярных выражений?
Надо выцепить подстроку в скобках из строки.

Например: "Начало строки (подстрока (с учетом того, что тут могут быть еще скобки)) продолжение строки"

Нужно получить: "(подстрока (с учетом того, что тут могут быть еще чкобки))".

У кого есть идеи?
источник

CN

Cyrill Novgorodcev in Modern::Perl
Vyacheslav Olkhovchenkov
по кавычки -- часть текста условия
поясни?
источник

VO

Vyacheslav Olkhovchenkov in Modern::Perl
кавычки не входят в ту строку, которую надо брабатывать выражением, а отделяют текст условия от примера строки
источник

CN

Cyrill Novgorodcev in Modern::Perl
а, ну тогда проще )
источник

CN

Cyrill Novgorodcev in Modern::Perl
выше решение
источник

АП

Александр Поляков in Modern::Perl
Спасибо!
источник

SZ

Sergey Zhmylove in Modern::Perl
Александр Поляков
Привет всем!
Есть гуру регулярных выражений?
Надо выцепить подстроку в скобках из строки.

Например: "Начало строки (подстрока (с учетом того, что тут могут быть еще скобки)) продолжение строки"

Нужно получить: "(подстрока (с учетом того, что тут могут быть еще чкобки))".

У кого есть идеи?
Гуру есть, много
источник

AP

Andrei Protasovitski in Modern::Perl
Cyrill Novgorodcev
"[^"]+?(\([^"]*\))[^"]*"
Оно ж не отлавливает вложенные скобки. Или мой внутренний компилятор re с багом?
источник

CN

Cyrill Novgorodcev in Modern::Perl
до кавычки проскочит и после начнёт назад возвращаться
источник

CN

Cyrill Novgorodcev in Modern::Perl
до первой закрывающей скобки
источник

AP

Andrei Protasovitski in Modern::Perl
Вот именно, что до первой закрывающей. То есть, если скормить этому re строку "(())", оно вернёт "(()", да?
источник

CN

Cyrill Novgorodcev in Modern::Perl
до первой закрывающей от конца, конечно
источник

CN

Cyrill Novgorodcev in Modern::Perl
<- в эту сторону
источник

c

cono in Modern::Perl
так как не уточняли версию perl :D
grammar BracketExpression {
   rule TOP {
   <expr>
   }

   token expr {
   [ <non-bracket>* | <non-bracket>* <bracket> <non-bracket>* ]
   }
   token bracket {
       '(' <expr> ')'
   }
   token non-bracket { <-[()]> }
}

my $m = BracketExpression.parse("(2 + (2 -6)) * 2");

$m<expr><bracket>.Str.say;
источник

CN

Cyrill Novgorodcev in Modern::Perl
источник