Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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) {} }
ЗЫ: спасибо за ответ, кстати |
|
Вернуться к началу |
|
|
studentik Гость
|
Добавлено: Вт Апр 29 2003 15:59 Заголовок сообщения: Re: Вопрос по Perlу |
|
|
программа выглядит примерно так: ... @ar_str=...; foreach() #здесь обновляется $str_gr { if ( здесь надо проверить $str_gr на наличие в ней элементов массива @ar_str) {} }
ЗЫ: спасибо за ответ, кстати |
|
Вернуться к началу |
|
|
FFF Гость
|
Добавлено: Вт Апр 29 2003 16:02 Заголовок сообщения: Re: Вопрос по Perlу |
|
|
index как раз и ищет вхождение подстроки в строку. Неужели у Вас нет справочника по Perl ? |
|
Вернуться к началу |
|
|
studentik Гость
|
Добавлено: Вт Апр 29 2003 18:32 Заголовок сообщения: Re: Вопрос по Perlу |
|
|
И возвращает, если находит подстроку?
Учебник есть, но там не нашел, а то, что нашел в инете - малопонятно или я такой тупой Спасибо! |
|
Вернуться к началу |
|
|
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го символа ). |
|
Вернуться к началу |
|
|
|