![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| GQU |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 13.2.2011 Репутация: нет Всего: нет |
Почему ereg возвращает false ? И еще один
Здесь тоже самое,-почему ereg возвращает false ? Это сообщение отредактировал(а) GQU - 22.4.2011, 11:53 |
||||
|
|||||
| WolfAlone |
|
|||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: 1 Всего: 5 |
По тому, что строка не соответствует шаблону. Попробуйте например вот так:
Так - соответствует. http://phpclub.ru/detail/article/regexp_1 - вот тут достаточно подробно написано про регулярные выражения, рекомендую! Добавлено через 5 минут и 36 секунд Приведённый мной пример кода, расшифровывается примерно так: Строка содержит любое кол-во (символ '*') букв (a-Z) в верхнем или нижнем регистре в начале строки и то же самое - в конце строки. По моему, ошибка из-за того, что по умолчанию [a-zA-Z] - означает 1 символ, а у Вас в строке их 3 (а не 2)... -------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
|||
|
||||
| GQU |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 13.2.2011 Репутация: нет Всего: нет |
Ну да точно это только для 1-го символа, а во 2-ом примере почему false ?
|
|||
|
||||
| WolfAlone |
|
|||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: 1 Всего: 5 |
А во втором примере - ошибка в строке 2. Указан экранирующий символ ("\"), за которым следует кавычка... Если написать правильно, то получиться такая вот строка:
В случае сравнения через регулярное выражение двух '\\' - возникает ошибка: "REG_EESCAPE" (конечная обратная косая черта). -------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
|||
|
||||
| GQU |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 13.2.2011 Репутация: нет Всего: нет |
В моем примере нет квадратных скобок, даже если сделать так
выдает false
Так, что ли, вы имеете ввиду
Если да, то это не работает Это сообщение отредактировал(а) GQU - 22.4.2011, 13:52 |
||||||||
|
|||||||||
| WolfAlone |
|
||||||||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: 1 Всего: 5 |
это не работает, по тому, что возникает ошибка "REG_EESCAPE", которая означает ни что иное как, "Символ обратного слэша в конце строки". Строка не должна оканчиваться символом "\"!
Выдаёт FALSE по тому, что выражение:
Означает ни что иное, как строку "A-Za-z". Если вы замените:
на
то вернёт TRUE. Что бы обозначить последовательность символов от A до Z (или от a до z) их нужно заключить в квадратные скобки "[ и ]". Правильно будет так:
- вернёт TRUE; -------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
||||||||
|
|||||||||
| GQU |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 13.2.2011 Репутация: нет Всего: нет |
А если так
почему false? |
||||
|
|||||
| gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Я бы не по теме хотел заметить, что ereg_* функции являются deprecated, и что надо использовать preg_*
|
|||
|
||||
| WolfAlone |
|
||||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: 1 Всего: 5 |
Символ "\" - это символ экранирования! То есть "\m" - означает: "Спецсимвол М". Такого спецсимвола я не припомню, но могу привести Вам другие примеры спецсимволов:
и так далее... Если Вы хотите получить символ "\" в тексте, то его стоит предварительно экранировать с помощью символа "\". То есть, получиться "\\" - что будет эквивалентно "\". Думаю, Вам стоит ещё раз обратиться к документации и внимательно её прочитать (ссылку я дал выше). Глава 3. Раздел "Спецсимволы". Последняя строка раздела:
Добавлено через 1 минуту и 29 секунд P.S. Соответственно, что бы текст распознавался интерпретатором как "g\m" его нужно записывать как: "g\\m". А если Вы напишите, например так: "g\n" - это будет означать: "символ G за которым следует символ конца строки". -------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
||||
|
|||||
| GQU |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 13.2.2011 Репутация: нет Всего: нет |
Я же так и написал
Сделаем тоже самое через preg_match()
Это сообщение отредактировал(а) GQU - 22.4.2011, 15:24 |
||||||||
|
|||||||||
| WolfAlone |
|
||||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: 1 Всего: 5 |
Я говорил вот об этой строке:
Работает вот так:
То есть, после того, как каждый отдельный символ мы взяли в квадратные скобки (как и положено). Если Вы хотите сравнить непосредственно строку - для этого есть специально предназначенные функции, например: strcmp(); http://docs.php.net/manual/en/function.strcmp.php -------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
||||
|
|||||
| GQU |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 13.2.2011 Репутация: нет Всего: нет |
Почему тут false ? Это сообщение отредактировал(а) GQU - 22.4.2011, 16:43 |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |