За последние 24 часа нас посетили 18055 программистов и 1658 роботов. Сейчас ищут 1559 программистов ...

что значит символ < в регулярке

Тема в разделе "Регулярные выражения", создана пользователем snug, 27 июл 2008.

  1. snug

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

    С нами с:
    8 июн 2008
    Сообщения:
    31
    Симпатии:
    0
    Адрес:
    Донецк
    Добрых суток?
    Есть регулярка:
    Код (Text):
    1.  / <ahref="([^"]+)">([^<]+)<\/a>/
    Что значит [^<] ?
    Много где искал синтаксис, ничего нету. Знаю что символ ^ в квадратных скобках означает отрицание, тогда получается что [^<] значит не символ' <'. Но тогда в приведённой регулярке нету логики. Растолкуйте пожалуйста.
     
  2. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    если есть уверенность что внутри <a> нету других тегов - хороший способ выдрать содержимое тега <a>
     
  3. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Любые символы кроме < и пустоты
     
  4. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    неправда
     
  5. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    а плюсег?
    т.е. от одного и более символов
     
  6. dsda

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

    С нами с:
    3 сен 2008
    Сообщения:
    34
    Симпатии:
    0
    А если анутри A есть например rel="идфр идфр" а после href="site?blah" например пробелы или еще чего. то как тогда строитть регулярку? второй день мучаюсь =(
     
  7. NOmeR1

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

    С нами с:
    11 май 2008
    Сообщения:
    97
    Симпатии:
    0
    Код (Text):
    1. ~<a[^>]+href[\x20]?=[\x20\x22\x27]?([^\x20\x22\x27\x3E]+)[\x20\x22\x27]?[^>]*>(.+?)</a>~i
    Уже выкладывал =)

    Что значит [^>]+ совершенно правильно объяснил Mr.M.I.T.
     
  8. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    NOmeR1
    Я еще раз говорю что Mr.M.I.T. не прав.
    Следующий пример код доказывает что пустота попадает под шаблон:
    PHP:
    1. <?
    2. echo preg_match('/^[^>]+$/', "\t \n \r".chr(0)) ? 'ok' : 'fail';
    результат: ok
     
  9. nimistar

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

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    Ti - непутай пустоту с пробелом
     
  10. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    [^>] тем более не соответствует "пустоте" без соответствующих квантификаторов

    кроме того, я уверен, Mr.M.I.T. под пустотой имел ввиду проблельные символы
     
  11. alexypnz

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

    С нами с:
    25 дек 2008
    Сообщения:
    2
    Симпатии:
    0
    Ребят, подскажите что означает вконце выражения (.+?) вопросительный знак?
     
  12. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    изменяет жадность квантификатора
     
  13. alexypnz

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

    С нами с:
    25 дек 2008
    Сообщения:
    2
    Симпатии:
    0
    Точно, спасибо!
     
  14. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    нет не имел
    ещё раз
    [^<]+ - любой набор символов больше 1 и кроме '<'
    вообще не из этой оперы