PDA

Просмотр полной версии : [Perl] Извлечение текста


apofis
07.04.2010, 13:49
Приветсвую!

Хочу спросить, можно ли как-нибудь извлечь текст?

Например, как можно извлечь стих, отсюда?

ASPuskin У лукоморья дуб зеленый;
Златая цепь на дубе том:
И днем и ночью кот ученый
Все ходит по цепи кругом;
Идет направо - песнь заводит,
Налево - сказку говорит. end

Т.е. нужно извлечь текст от "ASPuskin " до " end".

krypt3r
07.04.2010, 13:55
Регуляркой

$text =~ /ASPuskin (.+?) end/smi;

apofis
07.04.2010, 18:52
Ок, спасибо!

apofis
09.04.2010, 14:30
Есть еще один вопрос. Как можно извлечь этот же текст из файла, который, например называется stih.txt и находится в одной папке со скриптом?

krypt3r
09.04.2010, 14:54
#!/usr/bin/perl

use strict;
use warnings;
use utf8;
use open qw /:std :utf8/;

$\ = "\n";
die "wrong param count" unless scalar @ARGV == 1;
open my $F, '<', $ARGV[0] or die "open() error: $!";
my $text;
$text .= $_ while <$F>;
close $F;
my ($stih) = $text =~ /ASPuskin (.+?) end/smi;
print $stih;

Имя файла передается скрипту как параметр

apofis
09.04.2010, 16:36
Не совсем понятен этот код.
Ладно, задам другой вопрос:

Как можно сделать чтобы переменная была равна массиву? Я например открываю файл, т.е. @stih - это содержимое текстового файла.

Нужно сделать, чтобы $text = @stih, т.е. чтобы $text тоже содержал весь стих, чтобы потом из него потом уже извлечь то что нужно.

Kaimi
09.04.2010, 19:18
Ну напиши $text = join "\n", @stih;
Или читай содержимое файла по-другому...