За последние 24 часа нас посетили 19538 программистов и 1717 роботов. Сейчас ищут 1643 программиста ...

Исключение, отрицание

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

  1. Liquidator

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

    С нами с:
    16 авг 2010
    Сообщения:
    9
    Симпатии:
    0
    Берём ссылку в которой много подопотных CSS файлов http://snipper.ru/view/18/maloizvestnye-sposoby-atak-na-web-prilozheniya, цель выпилить все CSS, пытаемся сделать так:

    PHP:
    1. $cssfile_mask = 'href="(.*?\.css)"';
    2. preg_match_all('#' . $cssfile_mask . '#is', $html, $cssfile);
    Но получается вот, что:

    HTML:
    1. Array
    2. (
    3.     [0] => Array
    4.         (
    5.            многа букф
    6.         )
    7.  
    8.     [1] => Array
    9.         (
    10.             [0] => /css/reset-min.css
    11.             [1] => /css/fonts-min.css
    12.             [2] => /css/minimal.css
    13.             [3] => /css/main.css
    14.             [4] => /css/language-articles.css
    15.             [5] => /css/questions.css
    16.             [6] => /css/ie.css
    17.             [7] => /css/ie7.css
    18.             [8] => /images/favicon.ico" /><link rel="alternate" type="application/rss+xml" title="Комментарии" href="/rss/comments/18/" /><script src="/js/prototype.js" type="text/javascript" language="javascript" charset="utf-8"></script><script src="/js/scriptaculous.js" type="text/javascript" charset="utf-8"></script><script src="/js/snipper.js" type="text/javascript" language="javascript" charset="utf-8"></script><script src="/js/jquery.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript" src="/js/markitup/jquery.markitup.js"></script><script type="text/javascript" src="/js/markitup/sets/xbbcode-comments/set.js"></script><link rel="stylesheet" type="text/css" href="/js/markitup/skins/simple/style.css
    19.            [9] => /js/markitup/sets/xbbcode-comments/style.css
    20.         )
    21.  
    22. )
    Как правильно поставить отрицание, чтобы в [8] было всё красиво?
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Отрицание чего?
     
  3. Liquidator

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

    С нами с:
    16 авг 2010
    Сообщения:
    9
    Симпатии:
    0
    Ну типа, то, что внутри не должно быть символа: <

    Варианты:

    PHP:
    1. $cssfile_mask = 'href="(.*?[^>]\.css)"';
    2.  
    3. # или
    4.  
    5. $cssfile_mask = 'href="(.*?(?!>)\.css)"';
    не работают почемуто
     
  4. Liquidator

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

    С нами с:
    16 авг 2010
    Сообщения:
    9
    Симпатии:
    0
    Решил данный вопрос вот так:

    PHP:
    1. $cssfile_mask = 'href="([a-zA-Z0-9\/-]*\.css)"';