Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярные выражения, обучение 
:(
    Опции темы
Mal Hack
Дата 15.6.2005, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



PARROT попробуй что-то вроде http://,ya,.ru
PM ICQ   Вверх
PARROT
Дата 15.6.2005, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Странно, но вот что у меня получилось:
Код

http://[,a-zA-Z0-9.]+

http://,ya,.ru



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 15.6.2005, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Ты где-ть видела ссылки с запятыми???
PM ICQ   Вверх
PARROT
Дата 15.6.2005, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Так я ж думала, что мы еще рисуем... точнее учимся писать, а мы уже решили к функциям перейти?
А про под выражения не поговорим?
ОБЪЯВЛЕНИЕ:
(Для всех кто тут учиться)
Переходим ко второму уроку: Использование функций.
/////////////////////////////////////////////////////////////////////////
preg_grep() -функция которая выполняет поиск и возвращает массив совпадений;
preg_match() - выполняет поиск регулярного выражения до первого соответствия;
preg_match_all() - выполняет глобальный поиск;
preg_quote() - принимает шаблон и возвращает его защищенную версию;
preg_replace() - выполняет операцию поиска и замены;
preg_replace_callback() - выполняет операцию поиска и замены, но использует функцию обратного вызова для выполнения фактической 
замены;
preg_split() - разбивает строку на подстроки;
///////////////////////////////////////////////////////////////////////////////

Это сообщение отредактировал(а) PARROT - 15.6.2005, 15:58


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 15.6.2005, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Mal Hack, про htmlspecialchars() понял и проверил. smile Спасибо.
PARROT А можно небольшое отступление? Я хочу написать проверку e-mail на правильность. Сам. Вот что у меня получилось:
Код

<form method=post>
<input type=text maxlength=150 name="email"><br>
<input type=submit name="ok">
</form>

Код

if(isset($_POST['ok']))
{
    if(empty($email))
    {
        echo "Введите e-mail!";
        exit;
    }
    if(!eregi("[[:alnum:]]+@{1}[[:alnum:]]\\.[[:alnum:]]{0,3}",$email))
    {
        $email_error="<center><h3><font color=red>Некорректный e-mail!</font></h3></center>";
        echo "$email_error";
        exit;
    }
    else /* Что-то делаем */
}

Проверьте, правильно ли?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 15.6.2005, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



sim7, вместо [:alnum:], мы решили писать так [a-zA-Z0-9] и не использовать POSIX.
Исправь.

Я бы так написала:
Код

if(!eregi("^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[\w]+\.[\w]{0,3}$",$email))
    {
        $email_error="<center><h3><font color=red>Некорректный e-mail!</font></h3></center>";
        echo "$email_error";
        exit;
    }

Зачем @ одно вхождение, если понятно, что собак больше чем одной быть не может.
Защищать точку двумя слэшами не нужно.



Это сообщение отредактировал(а) PARROT - 15.6.2005, 17:01


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 15.6.2005, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



1) У меня просто на локалке при тестировании [a-z0-9_] неправильно работает, поэтому я и оставил так.
2) А разве это POSIX? Это RegEX. Я по учебнику делал (фигурные скобки, то есть, по учебнику), там это называется RegEx.
А в остальном правильно?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 15.6.2005, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



А так не надо: [a-z0-9_], надо так [a-zA-Z0-9] или [\w]
Так как ты пишешь, это POSIX, отставь его в сторону и почитай тему с первого сообщения, об этом уже говорилось.
Мой тестер нашел твое мыло только вот до сюда 1538733@t и все, далее ошибка.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 15.6.2005, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(PARROT @ 15.6.2005, 18:08)
А так не надо: [a-z0-9_], надо так [a-zA-Z0-9] или [\w]

На самом деле надо [A-Z0-9-_] при i в модификаторах или [A-Za-z0-9-_] без модификатора i.
PM ICQ   Вверх
skalex
Дата 15.6.2005, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 0
Всего: 23



sim7, я вот такой regexp использую для проверки корректности e-mail:
Код
<?php
preg_match('/[0-9A-Za-z._-]+@([0-9a-z_-]+\.)+[a-z]{2,4}/', $email);
?>

PM   Вверх
Mal Hack
Дата 15.6.2005, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Mace
________@_________.com - пропустит smile
ЗЫ: тыже вроде давал тут на форуме нормальные рэги smile
PM ICQ   Вверх
skalex
Дата 15.6.2005, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 0
Всего: 23



Да, вот тут хоршая дискуссия была : http://forum.vingrad.ru/index.php?showtopic=46596
smile
PM   Вверх
Irokez
Дата 15.6.2005, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(PARROT @ 15.6.2005, 16:42)
вместо [:alnum:], мы решили писать так [a-zA-Z0-9] и не использовать POSIX.

и
Цитата(PARROT @ 15.6.2005, 16:42)
Я бы так написала:

Цитата(PARROT @ 15.6.2005, 16:42)
eregi...

smile
PM   Вверх
PARROT
Дата 15.6.2005, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Irokez, я функции еще не трогала. Толку хвататься за функции, если не можешь, не понимаешь как писать рег?
Я повторила условие sim7. Исправила его рег.
Предпочитаю учиться постепенно, а не хвататься сразу за все.
Так толку не будет. Тем более меня никто не гонит.

eregi - совпадение с регулярным выражением без учёта регистра символов.
И че не так? Знак вопроса перед... А зачем знак вопроса, действительно?

Лучше использовать preg_match - выполняет подстановку регулярного выражения, которая использует Perl-совместимый синтаксис регулярного выражения, работает часто быстрее, чем ereg().

Это сообщение отредактировал(а) PARROT - 15.6.2005, 20:01


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Irokez
Дата 15.6.2005, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(PARROT @ 15.6.2005, 19:54)
eregi - совпадение с регулярным выражением без учёта регистра символов.

не с любым регулярным выражением, а POSIX совместимым
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0582 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.