Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

07.04.2010, 13:49
|
|
Познающий
Регистрация: 23.02.2009
Сообщений: 35
Провел на форуме: 267868
Репутация:
0
|
|
[Perl] Извлечение текста
Приветсвую!
Хочу спросить, можно ли как-нибудь извлечь текст?
Например, как можно извлечь стих, отсюда?
ASPuskin У лукоморья дуб зеленый;
Златая цепь на дубе том:
И днем и ночью кот ученый
Все ходит по цепи кругом;
Идет направо - песнь заводит,
Налево - сказку говорит. end
Т.е. нужно извлечь текст от "ASPuskin " до " end".
|
|
|

07.04.2010, 13:55
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Регуляркой
Код:
$text =~ /ASPuskin (.+?) end/smi;
|
|
|

07.04.2010, 18:52
|
|
Познающий
Регистрация: 23.02.2009
Сообщений: 35
Провел на форуме: 267868
Репутация:
0
|
|
Ок, спасибо!
|
|
|

09.04.2010, 14:30
|
|
Познающий
Регистрация: 23.02.2009
Сообщений: 35
Провел на форуме: 267868
Репутация:
0
|
|
Есть еще один вопрос. Как можно извлечь этот же текст из файла, который, например называется stih.txt и находится в одной папке со скриптом?
|
|
|

09.04.2010, 14:54
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Код:
#!/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;
Имя файла передается скрипту как параметр
|
|
|

09.04.2010, 16:36
|
|
Познающий
Регистрация: 23.02.2009
Сообщений: 35
Провел на форуме: 267868
Репутация:
0
|
|
Не совсем понятен этот код.
Ладно, задам другой вопрос:
Как можно сделать чтобы переменная была равна массиву? Я например открываю файл, т.е. @stih - это содержимое текстового файла.
Нужно сделать, чтобы $text = @stih, т.е. чтобы $text тоже содержал весь стих, чтобы потом из него потом уже извлечь то что нужно.
|
|
|

09.04.2010, 19:18
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
Ну напиши $text = join "\n", @stih;
Или читай содержимое файла по-другому...
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|