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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярка и cp1251, проблемы с дальнейшей обработкой 
:(
    Опции темы
shamber
Дата 31.3.2011, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

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



Всем здравствуйте.

Возникла следующая проблема.
Скрипт сохранен в файл в кодировке "cp1251". 
в скрипте получаю данные из вне и обрабатываю ее регуляками.

Код

if($data->{mes}=~/ком!(.*)/gi){
    my $mes = $1;
        if($mes=~/(\w+)/){
                        

первая регулярка отрабатывает нормально. Однако вторая уже не работает. Я думаю проблема с кодировкой. Нужно делать encode?
PM MAIL Jabber   Вверх
ming
Дата 31.3.2011, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 30.1.2009
Где: Новосибирск

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



PM MAIL ICQ Jabber   Вверх
shamber
Дата 31.3.2011, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

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



т.е. предлагается использовать use locale?

Добавлено через 3 минуты и 16 секунд
а почему первый раз срабатывает?
PM MAIL Jabber   Вверх
alezzz
Дата 1.4.2011, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


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

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



\w не совпало с кирилицей, если без locale то замените \w
Код

if($mes=~/([А-За-з\d]+)/){


можно и \w оставить если не только кирилица

Это сообщение отредактировал(а) alezzz - 1.4.2011, 10:44
PM MAIL   Вверх
ming
Дата 1.4.2011, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 30.1.2009
Где: Новосибирск

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



Цитата

а почему первый раз срабатывает?

потому что \w зависит от локали, а . ("точка") - нет.
PM MAIL ICQ Jabber   Вверх
shamber
Дата 1.4.2011, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

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



Тупанул, вообщем, не по детски. Забыл, что там за регулярку написал (

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


 




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


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

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