Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: не работает perl - регуляреное выражени(Кирилица)
только с разрывами строк после href= и перед Aleksey
почему не работает regexp?
trot
Отправлено: 07 Апреля, 2010 - 21:05:43
Новичок
Покинул форум
Сообщений всего: 34
Дата рег-ции: Нояб. 2009
Помог: 0 раз(а)
Попробуй поставить модификаторы s и m
tors
Отправлено: 08 Апреля, 2010 - 08:16:04
Гость
Покинул форум
Сообщений всего: 69
Дата рег-ции: Апр. 2010
Помог: 0 раз(а)
Цитата:
Попробуй поставить модификаторы s и m
не помогат
Champion
Отправлено: 08 Апреля, 2010 - 11:06:40
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
tors пишет:
(Автор
Нужно либо чтобы файл был сохранен в той же кодировке, в которой приходят строки на обработку, либо писать коды кириллических символов \х99 вот так. Или \u9999, если юникод.
tors
Отправлено: 08 Апреля, 2010 - 12:48:40
Гость
Покинул форум
Сообщений всего: 69
Дата рег-ции: Апр. 2010
Помог: 0 раз(а)
Цитата:
Нужно либо чтобы файл был сохранен в той же кодировке, в которой приходят строки на обработку, либо писать коды кириллических символов \х99 вот так. Или \u9999, если юникод.
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
tors пишет:
Приходила такая мысль
Либо как вариант можно изменить текущую локаль или преобразовать данные с помощью iconv - потому что регулярные выражения не особо хорошо работают со сторонней для данного PHP-скрипта кодировкой
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
trot
Отправлено: 09 Апреля, 2010 - 20:53:28
Новичок
Покинул форум
Сообщений всего: 34
Дата рег-ции: Нояб. 2009
Помог: 0 раз(а)
$rxp="/^(\xC0\xE2\xF2\xEE\xF0)(.+)(a>)$\s\m/";
что значит \s\m ?
tors
Отправлено: 10 Апреля, 2010 - 01:14:56
Гость
Покинул форум
Сообщений всего: 69
Дата рег-ции: Апр. 2010
Помог: 0 раз(а)
Цитата:
что значит \s\m ?
Цитата:
Попробуй поставить модификаторы s и m
Champion
Отправлено: 10 Апреля, 2010 - 08:32:17
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
Модификаторы ставятся после закрывающего символа (у тебя - /) и не экранируются. А так получилось, что после конца строки у тебя должны идти пробел, слеш и буква m
JustUserR
Отправлено: 10 Апреля, 2010 - 14:01:40
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
trot пишет:
Что значит \s\m ?
Если расположить их правильно после закрывающего слеша то будут значить следующее - /s значи то что символ точка . соответствует также символу новой строки - а модификатор /m в Perl означает многостроковое регулярное выражние но оно здесь не совсем кстати - просто в пробелы игнорируются и скажем заместо пробела пишут \x20 - но здесь это не влияет
И также советую вам привести проверяемые в регулярном выражении данные в одну с PHP-скриптом однобайтовую кодировку- например windows-cp1251 (Для юникода уже придется использовать другой формат с 4 символами)
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.