LINUX.ORG.RU

вопрос по парсингу [perl]

 


0

1

Здравствуйте! недавно начал учит перл занялся регекспами. решил парсить басню крылова а именно выделить из нее слова «Ворона» и «Лисица» в результате скрипт парсит строки в которых в начале стоят слова Ворона и Лисица и на выходе получаются следующие строчки

Лисица видит сыр, Лисицу сыр пленил.
Ворона каркнула во все воронье горло:
но мне надо чтоб в итоге парсилась не вся строка содепжащая нужное вхождение а только слова Ворона и Лисица сам быдлокод:
#!/usr/bin/perl
open(FILE,"text.txt") or die "Невозможно открыть файл: $!";
$text = <FILE>;
while ($text=<FILE>){
if ($text =~/^Лисица/) {
print  $text
}
if ($text =~/^Ворона/) {
print $text }
}
как осуществить?



Последнее исправление: mkeee (всего исправлений: 1)

Ответ на: комментарий от Slavaz

ну как код упростить я знаю. А вот как сделать так чтоб выводилось только искомое вхождение а не вся строка целиком,нет

mkeee
() автор топика

> как осуществить?

читать учебник внимательнее.

замени «print $text» на «print «$&\n»».

arsi ★★★★★
()
Ответ на: комментарий от arsi

вроде разобрался. и еще один вопрос свяpанный так или иначе с регекспами как гуглить не знаю спрошу здесь. Можно ли вывести найденные вхождения в отдельный txt файл

mkeee
() автор топика
Ответ на: комментарий от mkeee

> какой функцией если не секрет?

print/printf/say¹/…

¹⁾ perl-5.010+

arsi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.