За последние 24 часа нас посетили 21469 программистов и 1698 роботов. Сейчас ищут 1814 программистов ...

Простейшая регулярка

Тема в разделе "Регулярные выражения", создана пользователем ionico, 9 авг 2009.

  1. ionico

    ionico Активный пользователь

    С нами с:
    16 авг 2008
    Сообщения:
    73
    Симпатии:
    0
    Помогите пожалуйста составить регулярку.
    Я, наверное, не понимаю изначальный принцип, т.к. получает полная ерунда :(

    Необходимо, чтобы можно было ввести любой символ Латинского алфавита, Кириллического алфавита,
    пробел, дефис, подчеркивание, точку, любую цифру, косую черту, обратную косую черту и обычные круглые скобки.
    Хорошо бы ещё, чтобы максимальная длина строки была ограничена, скажем 50ю символами.

    Я написал такую регулярку, но она не работает (((

    Код (Text):
    1. $result = preg_match ("/[0-9a-zA-Zа-яА-Я_- \.\\\/\(\)]{1,50}/", $str);
    2. echo $result;
    при вводе строки: Привет _ГришаPupkin выводит $result = 0
    да и всегда 0 выходит :( в чём проблема?
    заранее спасибо за помощь
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    - ставь в начале
     
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    a-zA-Z замени на /.../i
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    дам совет. разрабатывай регулярки постепенно

    например.

    сделай /[a-z]+/i - проверь
    потом
    /[a-z\d]+/i
    потом
    /[a-z\d\s]+/i

    и т.д.

    \d - цифра
    \s - пробельный символ
     
  5. ionico

    ionico Активный пользователь

    С нами с:
    16 авг 2008
    Сообщения:
    73
    Симпатии:
    0
    спасибо, за ответ

    а что такое "i" ???
    и можно ли так указывать скобки: "\(\)" ?
    и как ограничить длину строки? {1, 50} это правильно?
     
  6. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    гугл >> Регулярные Выражения Википедия
     
  7. ionico

    ionico Активный пользователь

    С нами с:
    16 авг 2008
    Сообщения:
    73
    Симпатии:
    0
    спасибо, наверное, если я пишу на форум, то я уже посмотрел материал по этой теме и не понял его...
    именно поэтому я прошу помощи. :cry:
     
  8. ionico

    ionico Активный пользователь

    С нами с:
    16 авг 2008
    Сообщения:
    73
    Симпатии:
    0
    всем спасибо за помощь, я нашел отличную статью о Регулярках Perl и разобрался
    http://phpclub.ru/detail/article/regexp_1

    вот работающая регулярка:
    Код (Text):
    1. /^[-_a-zA-Zа-яА-Я0-9\.()+\s]{1,50}$/
    только вот одна проблема осталась, как добавить в перечень символы "\" и "/",
    если пишу так:

    Код (Text):
    1. /^[-_a-zA-Zа-яА-Я0-9\.()+\s\\\/]{1,50}$/
    то не работает :( подскажете?