|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Perl и поиск совпадений |
|
Разное - Perl и поиск совпадений
|
Пользователь Сообщения: 63 |
Ребяты помогите решить проблему...
Есть текстовый файл содержащий аннотации статей. Необходимо извлечь фамилии авторов которые там находятся в формате Иванов И. И.. Написал скрипт с помощью рег. выражений, но он находит лишь первое совпадение # Открываем файл open(TEXT,"ww.txt") || die "Не могу открыть файл"; # Читаем его содержимое @lines=<TEXT>; # Закрываем файл close TEXT; # Помещаем содержимое файла в переменную $all, предварительно слив всё в одну строку $all = join("",@lines); if ($all=~ /([A-Яа-я]{2,20}\s[А-Я]\.\s[А-Я]\.)/) {print $1;} Он печатает лишь первую фамилию в файле... остальных похоже даже не ищет... Как сделать так чтоб он в этой строке находил все совпадения и печатал их в столбик (или записывал в файл)? |
|
Отправлено: 14:56, 24-06-2010 |
Пользователь Сообщения: 63
|
Профиль | Отправить PM | Цитировать да и функция m/texttexttext/g тоже не помогает
|
Отправлено: 15:07, 24-06-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1404
|
Профиль | Отправить PM | Цитировать
Этот код выдирает только первое вхождение.
Чтобы выдрать все фамилии, нужно организовать цикл и на каждой итерации запомнить всю строку после каждой фамилии. |
------- Отправлено: 15:20, 24-06-2010 | #3 |
Назгул Сообщения: 2633
|
Профиль | Отправить PM | Цитировать Построчная обработка файла в Perl
http://forum.oszone.net/thread-170360.html Цитата armandi:
Сначала построчно искал все фамилии при помощи шаблона Regex и добавлял бы их в массив. Потом бы при остром желании, удалял бы из массива дубли. В случае предлагаемом вами нагрузка очень большая, т.к. по сути файл будет многократно перечитываться на предмет совпадений. |
|
------- Отправлено: 17:11, 24-06-2010 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Теория - Regexp-ы, определение количества совпадений | hasherfrog | Программирование и базы данных | 2 | 02-04-2009 12:11 | |
perl | simon171078 | Вебмастеру | 2 | 08-09-2006 19:44 | |
FreeBSD 5.3 Perl не видит локали, а KDE при сборке не видит perl :o | mar | Общий по FreeBSD | 8 | 06-05-2005 13:13 | |
Perl | Guest | Программирование и базы данных | 2 | 08-03-2004 23:00 | |
Perl::Tk | CBMen | Вебмастеру | 1 | 24-02-2003 16:56 |
|