Модераторы: ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> регулярные выражения, не пойму почему не работает код 
V
    Опции темы
burakov
Дата 13.1.2008, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



Добрый день.
Помогите пожалуйста

Есть код
Код

$str1 = 'шуфутинский михаил - левый берег дона (mix).';
$str2 = 'шуфутинский михаил - левый берег дона.';
if ($str1 =~ /$str2/){print "ok";} else {print "no";}


выдает ответ "ок". (хотя я ожидаю от него "no") Почему? и

Код

#строки полностью совпадают
$str1 = 'шуфутинский михаил - левый берег дона (mix).';
$str2 = 'шуфутинский михаил - левый берег дона (mix).';
if ($str1 =~ /$str2/){print "ok";} else {print "no";}


выдает ответ "no". (хотя я ожидаю от него "ok")??? 

В чем тут дело?

Спасибо.


--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
nitr
Дата 13.1.2008, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: нет
Всего: 84



Это уже обсуждалось, изучите плотнее регулярные выражения.
В данном случае надо было экранировать символы.

Код
#!perl

$str1 = 'шуфутинский михаил - левый берег дона (mix).';
$str2 = 'шуфутинский михаил - левый берег дона.';
if ($str1 =~ /\Q$str2\E/){print "ok";} else {print "no";}

print "\n";

#строки полностью совпадают
$str3 = 'шуфутинский михаил - левый берег дона (mix).';
$str4 = 'шуфутинский михаил - левый берег дона (mix).';
if ($str3 =~ /\Q$str4\E/){print "ok";} else {print "no";}


Добавлено через 1 минуту и 47 секунд
А чем вам eq не нравиться?

Код
#!perl

$str1 = 'шуфутинский михаил - левый берег дона (mix).';
$str2 = 'шуфутинский михаил - левый берег дона.';
if ($str1 eq $str2){print "ok";} else {print "no";}

print "\n";

#строки полностью совпадают
$str3 = 'шуфутинский михаил - левый берег дона (mix).';
$str4 = 'шуфутинский михаил - левый берег дона (mix).';
if ($str3 eq $str4){print "ok";} else {print "no";}



--------------------
PM   Вверх
burakov
Дата 13.1.2008, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



Спасибо. Получилось. 
Буду читать рег. выражения.


--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема »


 




[ Время генерации скрипта: 0.0480 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.