|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 06 Sep 2004 10:01:11 To : Serg Ivanov Subject : Re: Почему неправильно работает RE? -------------------------------------------------------------------------------- Serg Ivanov -> All @ Mon, 6 Sep 2004 04:25:18 +0000 (UTC): SI> Этот вопрос я уже задавал (и не только здесь), но ответа никто не SI> дал. Почему из-за 8-битного символа, стоящего после .+? SI> неправильно работает RE? Дома в ActiveState Perl все работает SI> правильно, а на американском сервере неправильно (и не только у SI> меня). Интересно, как у кого на сервере это будет работать? SI> Вот пример: SI> $_='Результат поиска: найдено сайтов'; SI> if (m!^Результат поиска.+?сайтов!m) - не находит. SI> А замена "с" на \xF1 не помогает: SI> if (m!^Результат поиска.+?\xF1айтов!m) - не находит. SI> Если разделить пробелом, то уже находит: SI> if (m!^Результат поиска.+? сайтов!m) SI> Вот еще работающий вариант разделителя (прямо анекдот): SI> if (m!^Результат поиска.+?\s{0}сайтов[^<]+<b>(\d+)</b>!m) SI> Выставление локали на это не влияет. Может быть проблема из-за различия между однобайтовой и многобайтовой кодировками. В какой кодировке интерпретирует скрипты и данные американский сервер? Если он ожидает utf-8, а ты ему подсовываешь windows-1251, у него будут очевидные проблемы... -- Artem Chuprina <ran@ran.pp.ru> FIDO: 2:5020/122.256 --- ifmail v.2.15dev5.3 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/121926f511e15.html, оценка из 5, голосов 10
|