ФорумПрограммированиеPHP для идиотов → Регулярные выражения - разбор примера

Регулярные выражения - разбор примера

  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 19 августа 2007 г. 13:47

    Вообщем…почитав в FAQ'е,полистав книжку,пытаюсь понять пример проверки емайла.

    "^([-a-zA-Z-0-9._]+@[-a-zA-Z-0-9.]+(\.[-a-zA-Z0-9]+)+)*$"


    +)+)*


    Нахрена эти плюсы и звездочка?…если быть точнее что они делают там?
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 19 августа 2007 г. 13:55, спустя 7 минут 40 секунд

    Т.е…* проверяет скобку…плюс 2-ю скобку…3-й плюс [] (кавычки) и т.д?
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 19 августа 2007 г. 14:02, спустя 7 минут 3 секунды

         "^([-a-zA-Z-0-9._]+@[-a-zA-Z-0-9.]+(\.[-a-zA-Z0-9]+)+)*$"


    + это один или более символов, тоесть домен example.ck309e3ej3j3oe983jeWEWEWEWE094038434 прокатит =)
    помоему он просто глупо составлен

    Можеш использовать мой:
    preg_match('|([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})|is', $mail);



    Всё, привел к соответствию =)
    adw/0
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 19 августа 2007 г. 14:08, спустя 6 минут 41 секунду

    тебе стоит посмотреть http://zeleboba.ru/files/regular_expressions_cheat_sheet.pdf , а лучше распечатай и повесь на стенку :)

    да-да снова зелебоба =)

    В кратце:

    * - 0 или более символов
    + - 1 или более символов
    ? - 0 или 1
    adw/0
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 19 августа 2007 г. 14:14, спустя 6 минут 5 секунд

    Пример



    ("/^([a-Z0-9]+)/is", $str)

    //Означает, от начала ('^') однострочной строки (параметр 's'), независимо от регистра (параметр 'i') идет
    //последовательность символов от 'a' до 'z', от 'A' до 'Z' и от '0' до '9' один или более раз ('+').

    adw/0
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 19 августа 2007 г. 14:16, спустя 1 минуту 58 секунд

    Пример 2:



    ("/^([a-Z0-9]{1,10})/is", $str)

    //Означает, от начала ('^') однострочной строки (параметр 's'), независимо от регистра (параметр 'i')
    //идет последовательность символов от 'a' до 'z', от 'A' до 'Z' и от '0' до '9' от одного символа и до десяти ('{1,10}').


    adw/0
  • zaxar

    Сообщения: 33 Репутация: N Группа: Кто попало

    Spritz 20 августа 2007 г. 3:18, спустя 13 часов 1 минуту 28 секунд

    В таблице ASCII сначала идут прописные буквы, а затем строчные. Т.е., правильно в выражении указывать A-z, а не a-Z!
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 20 августа 2007 г. 13:55, спустя 10 часов 37 минут 31 секунду


    В таблице ASCII сначала идут прописные буквы, а затем строчные. Т.е., правильно в выражении указывать A-z, а не a-Z!


    Сенкс, не задумывался об этом, хотя верно подмечено :)
    adw/0
  • welder

    Сообщения: 2945 Репутация: N Группа: в ухо

    Spritz 20 августа 2007 г. 14:58, спустя 1 час 2 минуты 42 секунды

    Начали за здравие, кончили за упокой ..



    В таблице ASCII сначала идут прописные буквы, а затем строчные. Т.е., правильно в выражении указывать A-z, а не a-Z!


    Сенкс, не задумывался об этом, хотя верно подмечено :)


    Ну если уж на то пошло то между прописными и строчными символами есть ещё знаки ([\]^_`) так что правельно записывать надо будет так a-zA-Z


    Вообщем…почитав в FAQ'е,полистав книжку,пытаюсь понять пример проверки емайла.

    "^([-a-zA-Z-0-9._]+@[-a-zA-Z-0-9.]+(\.[-a-zA-Z0-9]+)+)*$"


    +)+)*


    Нахрена эти плюсы и звездочка?…если быть точнее что они делают там?


    Ты где такого начитался ?

    в той же шпаргалке по регуляркам http://www.ilovejackdaniels.com/regular_expressions_cheat_sheet.png есть пример проверяющий мыло

    (\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})

    \w - допускать только письменные сиволы в пользавателе
    [a-zA-Z_] - допускать только большие и маленькие буквы плюс нижнее подчоркивание в домене
    ?\. - проверка количество точек после домена (? - 0 или 1)
    [a-zA-Z]{2,6} - допускать только большие и маленькие буквы длиной от 2 до 6 символов в зоне
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 20 августа 2007 г. 15:08, спустя 10 минут 7 секунд

    (\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})


    Интересно, а домен ad3000.ru будет в пролете, хороший пример :)
    ad3000.com.ru и ad3000.com-ne-org.ru тажа ситуация…

    В домене первого уровня максиму сколько символов?

    думаю на логин и домен ограничения на кол-во символов надо.

    ?\. - проверка количество точек после домена (? - 0 или 1)


    Зачем? а если ноль…. И может всетаки \.?
    adw/0
  • welder

    Сообщения: 2945 Репутация: N Группа: в ухо

    Spritz 20 августа 2007 г. 15:21, спустя 12 минут 25 секунд

    ну да спорить не буду они там зажрались просто :)
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 20 августа 2007 г. 15:27, спустя 6 минут 29 секунд


    ну да спорить не буду они там зажрались просто :)


    :) согласен
    adw/0
  • zaxar

    Сообщения: 33 Репутация: N Группа: Кто попало

    Spritz 21 августа 2007 г. 7:47, спустя 16 часов 19 минут 45 секунд

    Ну если уж на то пошло то между прописными и строчными символами есть ещё знаки ([\]^_`) так что правельно записывать надо будет так a-zA-Z


    Ну если уж совсем-совсем на то пошло, то правильнее всего будет записывать a-z, или A-Z, потому что юзаем модификатор «i»
  • welder

    Сообщения: 2945 Репутация: N Группа: в ухо

    Spritz 21 августа 2007 г. 8:20, спустя 32 минуты 57 секунд


    Ну если уж на то пошло то между прописными и строчными символами есть ещё знаки ([\]^_`) так что правельно записывать надо будет так a-zA-Z


    Ну если уж совсем-совсем на то пошло, то правильнее всего будет записывать a-z, или A-Z, потому что юзаем модификатор «i»


    тут не разбирался конкретный случай а было сказно образно.
  • Serj

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 5 марта 2008 г. 10:44, спустя 197 дней 3 часа 23 минуты

    Помогите плз, хочу сделать фильтрацию слов типа aaaaaaaaaaaaa oooooooooooooo и тп. Тоесть если Один любой символ повторяется более, допустим 10 раз, то обрезаем.
    joby.kharkov.ua

Пожалуйста, авторизуйтесь, чтобы написать комментарий!