Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > регулярка режет фукву |
Автор: bars80080 19.2.2010, 01:24 | ||
вот, простенькая регулярка, а почему-то режет первую букву при utf8. причём не важно, кириллица, латиница ли
|
Автор: NLspieler 19.2.2010, 02:11 |
А какая была цель? Для чего предназначена регулярка? |
Автор: skyboy 19.2.2010, 08:59 |
под "режет букву" имеется в виду замена символа в соответствие с приведенным кодом, или тот факт, что в двухбайтном коде кирилического символа заменяется только первый байт? |
Автор: Nicklasos 19.2.2010, 15:34 |
Может глупо, но может дело в том как сохранен файл? Есть uft8 with BOM, попробуй сохранить файл как utf8 без bom. Как-то давно у меня была похожая проблема с этим. |
Автор: bars80080 19.2.2010, 16:01 | ||||
не, тут нет никакого файла, есть строка из текстового поля формы. любая вообще, латинская, кириллическая - не важно. делаю
получаю
куда он девает букву - не разумею |
Автор: NLspieler 19.2.2010, 16:22 |
bars80080, Так у тебя же в регулярке так и написано, что бы регулярка заменила первый символ строки на пустую строку и записала результат в туже переменную. preg_replace - это аналог str_replace, только с регулярками. ^ - означает начало строки, в квадратных скобках идет список символов, которые нужно заменить на '' /^[a-zA-ZА-Яа-яЁё0-9 _\.\-,\/]/u Вот и получается, что он удалет в строке первый символ, который входит в список добою перечисленных. В чем же проблема, я не могу понять? Или это прикол такой? ![]() |
Автор: Nicklasos 19.2.2010, 16:33 |
Блин, точно ведь. Может автор хотел написать preg_match()? Тогда будет находить первую букву, если не указать '/^[a-zA-ZА-Яа-яЁё0-9 _\.\-,\/]*/u' |
Автор: bars80080 19.2.2010, 17:17 | ||
вот блин, я тормоз. не могу ещё их писать проклятые. я хотел вырезать всё не указанное. подстава оказалась в том, что в функции (с другими манипуляциями) оно работало с почти нужным результатом вот так хотел
|