ФорумПрограммированиеPHP для идиотов → Регулярка

Регулярка

  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 21 августа 2009 г. 15:27, спустя 41 минуту 25 секунд

    вот сам сделал)
    #\[(?:([^[]]*)\((.*)\))(.*)\]#Usi
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 21 августа 2009 г. 15:29, спустя 1 минуту 27 секунд

    Лучше все самому сделать, чем брать чужую регулярку…
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 21 августа 2009 г. 15:33, спустя 4 минуты 37 секунд

    точнее
    #\[(?:([^\[\]]*)\((.*)\)(.*))\]#Usi
    Спустя 108 сек.
    книга Фридла ахуенна
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 21 августа 2009 г. 16:09, спустя 35 минут 36 секунд

    а в пизду, не пашет нихуя, буду отдельной регуляркой парсить, тем более, что этих значений в круглых скобках может быть дохуя в одном блоке
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 21 августа 2009 г. 16:29, спустя 19 минут 37 секунд

    Вытащить элемент в котором нет вложенных, проще:
    ~\[([^\[]*?)\]~

    А по поводу второго, имхо, прав. Многие любят ебать себе мозг и писать злоебучую регулярку, где можно всё сделать просто несколькими последовательными
  • Baboot

    Сообщения: 440 Репутация: N Группа: Адекваты

    Spritz 21 августа 2009 г. 16:36, спустя 7 минут 3 секунды

    тож по теме, если не сложно подскажите:
    есть ссылка типа
    <a class="class" href="/path/morepath/link/">Сама ссылкв</a>

    А вопрос, как выдрать при помощи ругулярок все HREF у A класса CLASS?
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 21 августа 2009 г. 17:04, спустя 28 минут 33 секунды

    Baboot,
    #<a[ ]+class[ ]*=[ ]*['"]class['"][ ]+href[ ]*=[ ]*['"](.+?)['"]>#Ui[/code]
    если все в таком порядке..
    Спустя 74 сек.
    [b]vasa_c[/b], я так и делаю, если ограничители блоков являются одним символом [, ]

    а если ограничитель состоит из нескольких символов ( [b][?[/b] ), то такую:
    #\[\?((?:(?![b]\[\?[/b]|\]).)*)\]#Usi
    может её можно как-то уменьшить?
  • Batler

    Сообщения: 142 Репутация: N Группа: Кто попало

    Spritz 21 августа 2009 г. 17:06, спустя 1 минуту 30 секунд

    Можно добавить strpos и проверять на существование подстроки class="class".
    Тогда в самой регулярке
    /<a .*? href  \s* = \s* ['"](.+?) ['"] .*?>/xis[/php]
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 августа 2009 г. 19:24, спустя 2 часа 18 минут 42 секунды


    Можно добавить strpos и проверять на существование подстроки class="class".
    Тогда в самой регулярке
    /<a .*? href  \s* = \s* ['"](.+?) ['"] .*?>/xis[/php]

    [/quote]ыы. хочешь покажу регулярку и логику более правильную для такого анализа?
    Сапожник без сапог
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 августа 2009 г. 19:32, спустя 7 минут 8 секунд

    вот темка - http://forum.searchengines.ru/showpost.php?p=5226963&postcount=30

    кому интересно почитайте :) там есть небольшая теория по таким парсингам
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!