![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| psylostlife |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
Здравствуйте. Только пересел на линух и начал разбираться в перле.
У меня имеется такая конструкция в пхп скрипте:
где: $mats - массив, содержащий подстроки $ts - строка, в которой ищется вхождение этих подстрок $iscl - массив исключений вида "подстрока" - "<исключение>" (просто перед поиском сначала вырежем все исключения, на которые может срабатывать) Ну и последний stristr ищет циклично вхождение. Находит - выводит на экран(или в файл, это не важно), останавливает цикл и идёт следующий виток общего цикла(тут его не привел, написал сам, там считывание из файла построчно). Помогите пожалуйста, как это можно переписать на перле? Копался в гугле, искал аналоги, но не вышло :( Это сообщение отредактировал(а) psylostlife - 30.5.2010, 15:08 |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
что такое "исключение"?
|
|||
|
||||
| psylostlife |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
Это список подстрок, заменяемых на текст "<исключение>" - для того, чтобы исключить срабатывание на определенные слова. Поиск идет по частям слов.
За примером далеко ходить не надо. Должно, например, срабатывать на тр*х - поэтому перед поиском заменяем слова застрахуй(точнее даже застрах - предугадать -уй, -овать, -овал и прочее). |
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 14 Всего: 31 |
Это дословный перевод вашего алгоритма. Но перлист бы написал нечто другое Это сообщение отредактировал(а) sir_nuf_nuf - 31.5.2010, 11:28 |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
антимат? ну-ну.
foreach my $i (@iskl) { $ts =~ s#$i->[0]#$i->[1]#g } foreach my $m (@mats) { $ts =~ m#$m# && print $&; } подойдет? пс. можно где увидеть результат, проверить? |
|||
|
||||
| ming |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 30.1.2009 Где: Новосибирск Репутация: 2 Всего: 3 |
||||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |