Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Системное программирование > текст между разделителей


Автор: Loki 8.2.2009, 09:39
подскажите с регуляркой, что-бы можно было получить текст который наодится например в ковычках или в скобках, но не на одной строке, а на нескольких.
(текст текст) - вот так могу, а вот так хочу...
"текст
текст
"
Т.е. не факт что разделители будут на одной строке с текстом, нужно как-то искать до следующего, типо он как-бы закрывающим должен являться.
p.s. только убирать разделители нельзя, типо s/\"/ /;
пробовал так, но не получается получить только то что в кавычках.
Код

#!/usr/bin/perl -wT
use strict;
my @a = <DATA>;
my $aa=(join '', @a);
  #$aa =~ /"(.*?)"/s;
  $aa =~ /"([^"]*)"/;
print $aa;
__DATA__
"erqrqw
sdfsdfs
sdfs"

sdfsdfs

Автор: sir_nuf_nuf 8.2.2009, 12:00
Код

#!/usr/bin/perl -w
use strict;
my $aa = do {local $/ = undef; <DATA>};
if ($aa =~ /(["(])(.*?)\1/s) {
    print $2;
}
__DATA__
"erqrqw
sdfsdfs
sdfs"
sdfsdfs


Вообщем почитай про http://perldoc.perl.org/perlre.html#Modifiers

Автор: Loki 8.2.2009, 16:21
------

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)