За последние 24 часа нас посетили 17845 программистов и 1656 роботов. Сейчас ищут 2049 программистов ...

Помогите с регуляркой (может есть, а может нет)

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

  1. inline

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

    С нами с:
    21 май 2010
    Сообщения:
    466
    Симпатии:
    0
    Код (Text):
    1. <offer.*id=\"(.*)\".*brandid=\"(.*)\".*advid=\"(.*)\".*[b]cat=\"(.*)\"[/b].*>.*<name>(.*)<\/name>.*<price>(.*)<\/price>.*<\/offer>
    Код (Text):
    1. cat=\"(.*)\"
    может быть в строке, а может нет - как учесть?
     
  2. phpdude

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

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    так попробуй
     
  3. inline

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

    С нами с:
    21 май 2010
    Сообщения:
    466
    Симпатии:
    0
    а как правильно записать может есть ', а может ", а может ничего ?
    п/с пробовал несколько разных вариантов - немогу дойти шва
     
  4. inline

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

    С нами с:
    21 май 2010
    Сообщения:
    466
    Симпатии:
    0
    немогу в нете ничего найти про :? в регулярках
    и что значит ? в конце (?:cat=\"(.*)\")?
     
  5. inline

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

    С нами с:
    21 май 2010
    Сообщения:
    466
    Симпатии:
    0
    или как обозначить нет никакого символа ?
     
  6. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    ? в конце - это или есть повторение один раз, или нету вовсе.
    ?: в выражении - это чтото типа "заглянуть"
     
  7. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Апельсин
    А еще это квалификатор жадности.
     
  8. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    "?:"? Это типа не захватывать выражение в скобках =)
     
  9. inline

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

    С нами с:
    21 май 2010
    Сообщения:
    466
    Симпатии:
    0
    Volt(220)
    Apple
    /<a href=(?:')?(?:\")?(.*)(?:')?(?:\")?.*>(.*)<\/a>/isU

    чем можно заменить круглые скобки в (?:')?(?:\")? ?
     
  10. inline

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

    С нами с:
    21 май 2010
    Сообщения:
    466
    Симпатии:
    0
    Работает, но как получить значение (.*) ?
    В массиве результатов его нет
     
  11. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    ну если кавычек нет, тогда условия поиска меняются. Можно так:
    Код (Text):
    1. #cat=([\'\"]?)(?<res>(?(?=[\'\"])[^\\1]*|[^\s]*))\\1#
     
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.797
    Симпатии:
    1.331
    Адрес:
    Лень
    (|.+?)

    Добавлено спустя 2 минуты 16 секунд:
    писанины: есть или нету?
    (|cat=\"(.+?)\")