Регулярное выражение.

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

Статус темы:
Закрыта.
Модераторы: xpert13
  1. uNknownMark

    uNknownMark

    Регистр.:
    22 сен 2007
    Сообщения:
    393
    Симпатии:
    169
    Всем салют. Люди добрые помогите расшифровать регулярку.
    Код:
    preg_match( "/^\\w+\$/", $M )
     
  2. criooo

    criooo Писатель

    Регистр.:
    19 фев 2007
    Сообщения:
    7
    Симпатии:
    0
    /^\\w+\$/

    Выбрать от 1 и более цифр и букв. В строке должны быть только они.
     
  3. xpert13

    xpert13 <(*_*)>

    Moderator
    Регистр.:
    7 ноя 2008
    Сообщения:
    182
    Симпатии:
    455
    Вообще-то расшифровывается она так (если я ничего не путаю:(
    Строка должна начинаться с бэкслеша, за которым должно идти одно или больше букв "w", пока не встретится значок доллара.

    [​IMG]


    Но больше похоже на то, что регулярка не верно написана.
     
  4. HEPB

    HEPB Постоялец

    Регистр.:
    24 июн 2009
    Сообщения:
    111
    Симпатии:
    8
    xpert13 а что за программка у вас на скрине? Где скачать?
    И еще вопрос. Как регулярку написать для ICQ номера, то есть только цифры, ну можно еще и тире включить, хотя не обязательно.
     
  5. xpert13

    xpert13 <(*_*)>

    Moderator
    Регистр.:
    7 ноя 2008
    Сообщения:
    182
    Симпатии:
    455
    Программа называется RegexBuddy ( https://www.nulled.cc/threads/95907/ )

    Регулярка для ICQ номеров примерно такая: [\d-]{5,15}
    Но конечно она не будет на 100% работать, потому что может захватывать мобильные номера, просто числа и т.д.
     
    HEPB нравится это.
  6. HEPB

    HEPB Постоялец

    Регистр.:
    24 июн 2009
    Сообщения:
    111
    Симпатии:
    8
    спасибо за ссылку на прогу!

    Регулярка то, что надо. А то мне и буквы там прописывают, и e-mail в поле ICQ пишут...
     
  7. HEPB

    HEPB Постоялец

    Регистр.:
    24 июн 2009
    Сообщения:
    111
    Симпатии:
    8
    не получилось использовать... xpert13, напишите плиз полностью с preg_match

    у меня такой код:
    Код:
        if(isset($email))
        {
          if(!preg_match("|^[-0-9a-z_]+@[-0-9a-z^\.]+\.[a-z]{2,6}$|i", $email))      {
            echo ('Неверный email');
            $valid2=0;
        }
        }
        if(isset($icq))
        {
          if(!preg_match("[\d-]{5,15}", $icq))      {
             echo ('Неверное icq');
            $valid2=0;
        }
     
        }
    не строку if(!preg_match("[\d-]{5,15}", $icq)) {
    ругается:
    Warning: preg_match() [Перейти по ссылке]: Unknown modifier '{' in K:\home\local\www\register.php on line 39
     
  8. HEPB

    HEPB Постоялец

    Регистр.:
    24 июн 2009
    Сообщения:
    111
    Симпатии:
    8
    разобрался сам, спасибо:

    if(!preg_match("/[\d-]{5,15}/", $icq))
     
  9. xpert13

    xpert13 <(*_*)>

    Moderator
    Регистр.:
    7 ноя 2008
    Сообщения:
    182
    Симпатии:
    455
    Да, это уже особенность регулярок в пхп, что начало и конец регулярного выражения должны быть отмечены одинаковыми символами не встречающими в самом выражении. Нужно это для того, чтобы отделить выражение от модификаторов. Я специально даю только саму регулярку, так как наперед не знаю в какой среде она будет использоваться.
     
    HEPB нравится это.
  10. bertolai

    bertolai

    Регистр.:
    21 янв 2008
    Сообщения:
    158
    Симпатии:
    56
    Привет. Нужна помощь.

    Есть уже работающий скрипт. Он при запуске, меняет в index.html урлы.
    Из списка urls.txt берет по очереди.
    Это скрипт хорошо работает когда индексная страниц выглядит определенным образом.
    (в архиве это страница (primer1.html) )
    а когда индексная страница выглядит по другому, скрипт не срабаывает.
    Вобщем нужно чтобы скрипт срабатывал, так чтобы в когда индексная страниц выглядела как primer2.html, то при запуске скрипта менялся первый урл Перейти по ссылке" на урлы из списка. А второй урл - yyyy2222222.ru чтобы не менялся.
    Сам скрипт, и обе страницы находятся здесь Перейти по ссылке
     
Статус темы:
Закрыта.