За последние 24 часа нас посетили 37863 программиста и 1810 роботов. Сейчас ищут 826 программистов ...

проблема с обратным слешем

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

  1. Mtnt

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

    С нами с:
    13 май 2009
    Сообщения:
    27
    Симпатии:
    0
    проблема в конструкции
    Код (Text):
    1. [^\\]
    , которая должна ловить все кроме обратного слеша.
    При запуске скрипта вылетает ошибка, нет закрывающей ]
    как вылечить?
     
  2. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    прослешить его еще 1 раз

    [^\\\]

    PHP:
    1. <?php
    2. $subject = 'sample\ne/*-xt\r';
    3. var_dump($subject);
    4. var_dump(preg_match_all('/[^\\\]/', $subject, $matches));
    5. var_dump($matches);
     
  3. Mtnt

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

    С нами с:
    13 май 2009
    Сообщения:
    27
    Симпатии:
    0
    а почему так? получается, что один слеш экранирует второй... а третий что делает?
     
  4. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Два слеша в РНР обозначают один экранированный (\\ = \), этот слеш, стоящий перед следующим, PCRE принимает за экранирующий его слеш слешем.
     
  5. Mtnt

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

    С нами с:
    13 май 2009
    Сообщения:
    27
    Симпатии:
    0
    ааа понял, спасибо)