Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
Alek пишет:
i - может вообще не работать с русскими символами
Работает и с кирилицей. Может не работать, только если, кодировка юникод и отсутствует модификатор u.
Возможно стоит проверить в какой кодировке поступает текст в регулярное выражение.
snikers987
Отправлено: 08 Апреля, 2012 - 21:25:19
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
Okula если добавить модификатор u - ошибка. Кодировка 100% верная, иначе не находило бы и в нижнем регистре. Alek Добавить верхний регистр это можно, но не ясно зачем его добавлять и почему i работает не как ожидалось.
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
LIME
Отправлено: 08 Апреля, 2012 - 21:28:37
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
я вот не уверен но....кажется модификатор i не распространяется на []
иначе к чему вот это? [а-яА-Я]
DeepVarvar
Отправлено: 08 Апреля, 2012 - 21:54:18
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Мне кажется все проще.
По умолчанию ожидается нижний регистр [а-яё],
но если указан верхний [АЯ-Ё], то "умолчание" отсекается как не нужное.
Поэтому модификатор i уместным будет применять только при описании класса символов в нижнем регистре.
Хотя я не проверял наверняка, но судя из того что происходит, все может быть именно так.
Кроме того существуют различные версии PCRE,
которые могут по разному (с разным приоритетом) интерпретировать те или иные модификаторы.
Соответственно лучше написать [а-яёА-ЯЁ] и точно знать что проканает в любом случае.
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
DeepVarvarAlek в том то и дело что менялся регистр не в регулярке а в строке
значит нет никакого умолчания
тупо i не пашет
DeepVarvar
Отправлено: 09 Апреля, 2012 - 00:09:56
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Ну вот для cp1251 и не пашет, а для utf-8 вдруг бац и пашет...
Реализации то разные, и чармапы в исходниках к ним разные, и алгоритмы тоже разные.
А если еще вспомнить что винде плевать на регистр,
то появляется мысль что для cp1251 PCRE на регистр тоже плевать, точнее не работает он совсем... (Добавление)
Ну вот так и есть:
cp1251:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.