Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Perl search

Ответить
Настройки темы
Perl search

Аватара для Guest

Guest



Профиль | Цитировать


Положим есть файл test.txt и в нём есть такие строки:
"Маша мыла раму"
"Мама мыла Машу"
"Тест"
Так вот надо чтоб програма проверяля каждую строку на наличие определённого слова и если слово "мыла" присутствует выводила бы строку на экран. В этом случае програма должна вывести:
Маша мыла раму
Мама мыла Машу
Как это реализовать? Инетресует сам маханизм поиска. Буду рад полезным ссылкам. Заранее благодарен.

Отправлено: 11:22, 09-03-2004

 

Пользователь


Сообщения: 110
Благодарности: 1

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
open (FL, 'text.txt');
while(<FL>)
{
if (index($_,'мыла')>=0) {print $_}
}
close FL;
Это самый дубовый вариант, не учитывающий ни кодировки, ни регистр символов. И вообще, использующий переменную по умолчанию :-)

По поводу поиска посмотрите хотя бы это

Отправлено: 11:59, 09-03-2004 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Guest

Guest


Профиль | Цитировать


Большое спасибо :-)

Отправлено: 12:35, 09-03-2004 | #3


Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


другой вариант поиска -- *с использованием регулярных выражений. Регулярные выражения - очень мощный инструмент работы с текстом.

Код: Выделить весь код
open (FL, 'text.txt'); 

while(<FL>) { 
 if ($_ =~ /мыла/) {
 *print $_;}
} 
close FL;
если надо "мыла" заменить на "мало" используешь нечто подобное:

Код: Выделить весь код
open (FL, 'text.txt'); 

while(<FL>) { 
 if ($_=~s/мыла/мало/) {
 *print $_;}
} 
close FL;
в винде это сработает нормально только если файл test.txt в кодировке dos. *если в koi или win потребуется перекодировка искомой строки или считываемого файла.
Перекодировку можно реализовать тоже с помощью регулярных выражений.

[s]Исправлено: mrcnn, 7:41 14-03-2004[/s]

-------
Ehhh.. what's up, doc?..


Отправлено: 07:39, 14-03-2004 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Perl search

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - [addon] Windows Search 4.0 NRG Наборы обновлений для Windows XP/2003/Windows 7 23 10-06-2008 13:37
FreeBSD - SMB Search spht Общий по FreeBSD 1 02-03-2008 21:23
Quintura Search Tumak Новости информационных технологий 3 11-05-2006 10:22
FreeBSD 5.3 Perl не видит локали, а KDE при сборке не видит perl :o mar Общий по FreeBSD 8 06-05-2005 13:13




 
Переход