preg и utf-8

Статус
В этой теме нельзя размещать новые ответы.

CrashX

В прошлом XSiteCMS
Регистрация
6 Июн 2008
Сообщения
681
Реакции
114
PHP:
preg_match("[pagename:([а-яА-Яa-zA-Z0-9 |-]*)]",$ins['alltext'],$ins['attr']));
строка [pagename:Расписание на будни 1|Расписание на выходные|Экстренное расписание]
скрипт в утф, текст тоже, результат
REZ
Array
(
[0] => pagename:Ра�
[1] => Ра�
)
нужно из строки выдернуть
Расписание на будни 1|Расписание на выходные|Экстренное расписание
 
PHP:
preg_match("/[pagename:([а-яА-Яa-zA-Z0-9 |-]*)]/u",$ins['alltext'],$ins['attr']));
 
PHP:
preg_match("/[pagename:([а-яА-Яa-zA-Z0-9 |-]*)]/u",'sdksdas sad sa da as das [pagename:Расписание на будни 1|Расписание на выходные|Экстренное расписание] sad sa  sd asdsa das d',$ins['attr']);
     echo"!!!<br>";
   print_r($ins['attr']);
модификаторы не помогают не /u не /ui
 
PHP:
preg_match("/\[pagename:([^\]]+)]/i",'sdksdas sad sa da as das [pagename:Расписание на будни 1|Расписание на выходные|Экстренное расписание] sad sa  sd asdsa das d',$ins); 
     echo"!!!<br>"; 
   print_r($ins);
 
спасибо, а можно пояснить почему именно так )?
 
Потому что символы [] слешировать надо.
Элементарное регулярное выражение, поясяняется так: если мы нашли символ [ с последующим слово pagename, то собираем весь текст пока не найдем ], при это мы игнорируем регистр (модификатор i)
 
спасибо, просто в регулярках я не особо силен...
я так понял что их слешировать нужно только при использовании / тк, так можно будет задать условия и модификаторы. в общем понятно, стоит еще перечитать правила)
 
спасибо, просто в регулярках я не особо силен...
я так понял что их слешировать нужно только при использовании / тк, так можно будет задать условия и модификаторы. в общем понятно, стоит еще перечитать правила)

слэшем выделяется любой символ, который может быть воспринят регуляркой как часть маски, например:
Код:
*
+
.
?
[
]
(
)
-
{
}

сама же маска ограничена с двух сторон произвольными символами, которые указывают на начало маски, ее конец и модификаторы (приведу пример с одним i:(

Код:
/маска/i
~маска~i
<маска>i
|маска|i

и т.д.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху