Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Вопрос по Perlу

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
studentik
Гость





СообщениеДобавлено: Пн Апр 28 2003 15:41    Заголовок сообщения: Вопрос по Perlу Ответить с цитатой

Может это глупо, но у меня долго и упорно описанное ниже не получается. Есть массив, в качестве элементов которого стоят некоторые строки и есть одна большая строка, которую надо проверить на наличие в ней элементов массива. Т.е. элемент массива может входить в строку, но не может полностью совпадать с ней.
Подскажите, плиз, как осуществить такую проверку.
Вернуться к началу
FFF
Гость





СообщениеДобавлено: Вт Апр 29 2003 08:18    Заголовок сообщения: Re: Вопрос по Perlу Ответить с цитатой

вот самый простой вариант Вашей программы (как я ее поня). В ней проверяется вхождение, которое может быть и полным совпадением

#!/usr/bin/perl
use English;

#поиск в строке массива подстрок.
#

@ar_str=("строка 1", "string 2", "ssss 55","tttt"); ##массив строк
$str_gr="в этой строке ищем string 2 ttttttttt"; ##одна большая строка

foreach $ss (@ar_str) { ##по элементам массива строк
if (index($str_gr, $ss) } -1) ##подстрока найдена
{
print("\n найдена подстрока: ", $ss);
}
} ## foreach $ss (@ar_str)

!! символ } в операторе if надо заменить на знак БОЛЬШЕ (боюсь, что угловую скобку не пропустит скрипт форума)
Вернуться к началу
studentik
Гость





СообщениеДобавлено: Вт Апр 29 2003 15:40    Заголовок сообщения: Re: Вопрос по Perlу Ответить с цитатой

хммм
а что такое index($str_gr, $ss) ?
что делает index?
Вернуться к началу
studentik
Гость





СообщениеДобавлено: Вт Апр 29 2003 15:59    Заголовок сообщения: Re: Вопрос по Perlу Ответить с цитатой

программа выглядит примерно так:
...
@ar_str=...;
foreach() #здесь обновляется $str_gr
{
if ( здесь надо проверить $str_gr на наличие в ней элементов массива @ar_str)
{}
}


ЗЫ: спасибо за ответ, кстати Smile
Вернуться к началу
studentik
Гость





СообщениеДобавлено: Вт Апр 29 2003 15:59    Заголовок сообщения: Re: Вопрос по Perlу Ответить с цитатой

программа выглядит примерно так:
...
@ar_str=...;
foreach() #здесь обновляется $str_gr
{
if ( здесь надо проверить $str_gr на наличие в ней элементов массива @ar_str)
{}
}


ЗЫ: спасибо за ответ, кстати Smile
Вернуться к началу
FFF
Гость





СообщениеДобавлено: Вт Апр 29 2003 16:02    Заголовок сообщения: Re: Вопрос по Perlу Ответить с цитатой

index как раз и ищет вхождение подстроки в строку. Неужели у Вас нет справочника по Perl ?
Вернуться к началу
studentik
Гость





СообщениеДобавлено: Вт Апр 29 2003 18:32    Заголовок сообщения: Re: Вопрос по Perlу Ответить с цитатой

И возвращает, если находит подстроку?

Учебник есть, но там не нашел, а то, что нашел в инете - малопонятно Sad или я такой тупой Smile
Спасибо!
Вернуться к началу
studentik
Гость





СообщениеДобавлено: Ср Апр 30 2003 09:06    Заголовок сообщения: Re: Вопрос по Perlу Ответить с цитатой

И что возвращает, если находит подстроку?
Вернуться к началу
FFF
Гость





СообщениеДобавлено: Ср Апр 30 2003 16:11    Заголовок сообщения: Re: Вопрос по Perlу Ответить с цитатой

возвращает номер позиции, с которой обнаружено 1ое вхождение подстроки. (символы в строке нумеруются с 0).

If the string contains the substring at more than one location, the index function returns the leftmost location. To find later locations, you can give index a third parameter. This parameter is the minimum value that will be returned by index, allowing you to look for the next occurrence of the substring that follows a selected position. This index looks like this:

$x = index($bigstring,$littlestring,$skip);

$skip -- с какого символа начинать поиск. если этот параметр опущен, то поиск ведется с начала строки (т.е. с 0го символа ).
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...