.icon-auto-adjust-gbugrd{
background-image:url(/resource/graphics/icons/adjust-chosen-column.png) !important;
}
.icon-auto-adjust-all-gbugrd{
background-image:url(/resource/graphics/icons/adjust-all-columns.png) !important;
}
#view-panel-fleman .x-view-over{
    background: #efefef url(/extjs/resources/images/default/grid/row-over.gif) repeat-x left top;
}
#view-panel-fleman .loading-indicator {
font-size:11px;
background-image:url('../../extjs/resources/images/default/grid/loading.gif');
background-repeat: no-repeat;
background-position: left;
padding-left:20px;
margin:10px;
}文件类似这样
想请高手写个正则,匹配取得所有URL里的文件路径,存放到数组里
例如上面的几条数据 我需要得到的结果是array(
    .icon-auto-adjust-gbugrd => /resource/graphics/icons/adjust-chosen-column.png,
    .icon-auto-adjust-all-gbugrd => /resource/graphics/icons/adjust-all-columns.png,
    #view-panel-fleman .x-view-over => /extjs/resources/images/default/grid/row-over.gif,
    #view-panel-fleman .loading-indicator => ../../extjs/resources/images/default/grid/loading.gif
);

解决方案 »

  1.   

     $str=<<< TEXT
     .icon-auto-adjust-gbugrd{
        background-image:url(/resource/graphics/icons/adjust-chosen-column.png) !important;
    }
    .icon-auto-adjust-all-gbugrd{
        background-image:url(/resource/graphics/icons/adjust-all-columns.png) !important;
    }
    #view-panel-fleman .x-view-over{
        background: #efefef url(/extjs/resources/images/default/grid/row-over.gif) repeat-x left top;
    }
    #view-panel-fleman .loading-indicator {
        font-size:11px;
        background-image:url('../../extjs/resources/images/default/grid/loading.gif');
        background-repeat: no-repeat;
        background-position: left;
        padding-left:20px;
        margin:10px;
    }
    TEXT;
    preg_match_all("#url\((.*?)\)#",$str,$arr);
    preg_match_all("#[\.\#](.*?)\{#",$str,$arr1);
    print_r($arr);
    print_r($arr1);得到两个数组,自己在处理下就可以了
      

  2.   

     $str=<<< TEXT
     .icon-auto-adjust-gbugrd{
        background-image:url(/resource/graphics/icons/adjust-chosen-column.png) !important;
    }
    .icon-auto-adjust-all-gbugrd{
        background-image:url(/resource/graphics/icons/adjust-all-columns.png) !important;
    }
    #view-panel-fleman .x-view-over{
        background: #efefef url(/extjs/resources/images/default/grid/row-over.gif) repeat-x left top;
    }
    #view-panel-fleman .loading-indicator {
        font-size:11px;
        background-image:url('../../extjs/resources/images/default/grid/loading.gif');
        background-repeat: no-repeat;
        background-position: left;
        padding-left:20px;
        margin:10px;
    }
    TEXT;
    preg_match_all("#(url\((.*?)\))|([\.\#](.*?)\{)#",$str,$arr);
    print_r($arr);或者这样
      

  3.   

    这个结果有点出入  如果是这样的数据
    .icon-auto-adjust-gbugrd{
        background-image:url(/resource/graphics/icons/adjust-chosen-column.png) !important;
    }
    .icon-auto-adjust-all-gbugrd{
        background-image:url(/resource/graphics/icons/adjust-all-columns.png) !important;
    }.icon-auto-adjust-all1-gbugrd{
       aligh:center
    }
    .icon-auto-adjust-all2-gbugrd{
        background-image:url(/resource/graphics/icons/adjust-all-columns.png) !important;
    }那么你这样得到的数据就是
    array(
        /resource/graphics/icons/adjust-chosen-column.png,
        /resource/graphics/icons/adjust-all-columns.png,
        /resource/graphics/icons/adjust-all-columns.png
    );
    array(
        .icon-auto-adjust-gbugrd,
        .icon-auto-adjust-all-gbugrd,
        .icon-auto-adjust-all1-gbugrd,
        .icon-auto-adjust-all2-gbugrd);这样的话 就不能配对了
      

  4.   

    $str = str_replace(array("\r", "\n", '}'), array('', '', "}\n"), $str);
    preg_match_all('/([^{\n]+){.+url\((?:\'|")?([^\'"]+)(?:\'|")?\)/i', $str, $matches);
    print_r(array_combine($matches[1], $matches[2]));
      

  5.   

    <?php$str = <<<CSS
    .icon-auto-adjust-gbugrd{
        background-image:url(/resource/graphics/icons/adjust-chosen-column.png) !important;
    }
    .icon-auto-adjust-all-gbugrd{
        background-image:url('/resource/graphics/icons/adjust-all-columns.png') !important;
    }
    .icon-auto-adjust-all1-gbugrd{
        aligh:center
    }
    .icon-auto-adjust-all2-gbugrd{
        background-image:url("/resource/graphics/icons/adjust-all-columns.png") !important;
    }
    CSS;$str = str_replace(array("\r", "\n", '}'), array('', '', "}\n"), $str);
    preg_match_all('/([^{\n]+){.+url\((?:\'|")?([^\'"]+)(?:\'|")?\)/i', $str, $matches);
    print_r(array_combine($matches[1], $matches[2]));
    ?>执行结果
    Array
    (
        [.icon-auto-adjust-gbugrd] => /resource/graphics/icons/adjust-chosen-column.png
        [.icon-auto-adjust-all-gbugrd] => /resource/graphics/icons/adjust-all-columns.png
        [.icon-auto-adjust-all2-gbugrd] => /resource/graphics/icons/adjust-all-columns.png
    )
    怎么不是你要的了?
      

  6.   

    sorry
    你一开始那个确实不行,改成
    preg_match_all('/([^{\n]+){.+url\((?:\'|")?([^\'"]+)(?:\'|")?\)/isU', $str, $matches);
      

  7.   

    $s = <<< CSS
    .icon-auto-adjust-gbugrd{
        background-image:url(/resource/graphics/icons/adjust-chosen-column.png) !important;
    }
    .icon-auto-adjust-all-gbugrd{
        background-image:url(/resource/graphics/icons/adjust-all-columns.png) !important;
    }
    #view-panel-fleman .x-view-over{
        background: #efefef url(/extjs/resources/images/default/grid/row-over.gif) repeat-x left top;
    }
    #view-panel-fleman .loading-indicator {
        font-size:11px;
        background-image:url('../../extjs/resources/images/default/grid/loading.gif');
        background-repeat: no-repeat;
        background-position: left;
        padding-left:20px;
        margin:10px;
    }
    CSS;preg_match_all("/([.#][^{]+).+?url[(']+(.+?)[')]/s", $s, $r);
    foreach($r[1] as $k=>$v)
      $out[$v] = $r[2][$k];
    print_r($out);
    Array
    (
        [.icon-auto-adjust-gbugrd] => /resource/graphics/icons/adjust-chosen-column.png
        [.icon-auto-adjust-all-gbugrd] => /resource/graphics/icons/adjust-all-columns.png
        [#view-panel-fleman .x-view-over] => /extjs/resources/images/default/grid/row-over.gif
        [#view-panel-fleman .loading-indicator ] => ../../extjs/resources/images/default/grid/loading.gif
    )
      

  8.   

    高手啊
    我现在是这样的Array
    (
        [/* alarms */.icon-16-alarms ] => /resource/graphics/icons/application-alarms-16px.png
        [.icon-16-alarms ] => /resource/graphics/icons/application-alarms-16px.png
        [/* gbugrd */.icon-clear-group-gbugrd ] => /resource/graphics/icons/placeholder.png
        [.x-grid3-summary-row ] => /resource/graphics/icons/placeholder.png
        [.icon-summary-type-gbugrd ] => /resource/graphics/icons/placeholder.png
        [/*! * Ext JS Library 3.2.0 * Copyright(c) 2006-2010 Ext JS, Inc. * [email protected] * http://www.extjs.com/license */.x-grid3-locked, .x-grid3-unlocked ] => /resource/graphics/icons/adjust-chosen-column.png
        [.icon-auto-adjust-all-gbugrd] => /resource/graphics/icons/adjust-all-columns.png
        [.icon-auto-adjust-header-gbugrd] => /resource/graphics/icons/adjust-by-heading.png
        [.icon-auto-adjust-content-gbugrd] => /resource/graphics/icons/adjust-by-content.png
        [/* hepsup */.icon-16-hepsup ] =>  /system/hepsup/img/hepsup_16.gif 
        [.icon-bug-16] =>  ../img/iconBug.gif
    );能否再改一下正则 把/* hepsup */ 这样的注释给忽略掉啊 
    谢谢了
      

  9.   

    中间如果有注释的话 就成这样了...
    [.icon-summary-type-gbugrd ] => /resource/graphics/icons/placeholder.png
        [.2.0
     * Copyright(c) 2006-2010 Ext JS, Inc.
     * [email protected]
     * http://www.extjs.com/license
     */
    .x-grid3-locked, .x-grid3-unlocked ] => /resource/graphics/icons/adjust-chosen-column.png
        [.icon-auto-adjust-all-gbugrd] => /resource/graphics/icons/adjust-all-columns.png
        [.icon-auto-adjust-header-gbugrd] => /resource/graphics/icons/adjust-by-heading.png
        [.icon-auto-adjust-content-gbugrd] => /resource/graphics/icons/adjust-by-content.png
      

  10.   


    /* alarms */
    .icon-16-alarms {
        background-image:url(/resource/graphics/icons/application-alarms-16px.png) !important;
    }
    .icon-16-alarms {
        background-image:url(/resource/graphics/icons/application-alarms-16px.png) !important;
    }
    .icon-48-alarms {
        background-image:url(/resource/graphics/icons/application-alarms-48px.png) !important;
    }
    /*!
     * Ext JS Library 3.2.0
     * Copyright(c) 2006-2010 Ext JS, Inc.
     * [email protected]
     * http://www.extjs.com/license
     */
    .x-grid3-locked, .x-grid3-unlocked {
    overflow: hidden;
    position: absolute;
    }.x-grid3-locked .x-grid3-scroller {
    overflow: hidden;
    }.x-grid3-locked .x-grid3-row {
    border-right: 0;
    }这样的 帮忙考虑下 谢谢了
      

  11.   

    并不存在问题
    $s = <<< CSS
    /* alarms */
    .icon-16-alarms {
        background-image:url(/resource/graphics/icons/application-alarms-16px.png) !important;
    }
    .icon-16-alarms {
        background-image:url(/resource/graphics/icons/application-alarms-16px.png) !important;
    }
    .icon-48-alarms {
        background-image:url(/resource/graphics/icons/application-alarms-48px.png) !important;
    }
    /*!
     * Ext JS Library 3.2.0
     * Copyright(c) 2006-2010 Ext JS, Inc.
     * [email protected]
     * http://www.extjs.com/license
     */
    .x-grid3-locked, .x-grid3-unlocked {
        overflow: hidden;
        position: absolute;
    }.x-grid3-locked .x-grid3-scroller {
        overflow: hidden;
    }.x-grid3-locked .x-grid3-row {
        border-right: 0;
    }
    CSS;preg_match_all("/([.#][^{]+).+?url[(']+(.+?)[')]/s", $s, $r);
    foreach($r[1] as $k=>$v)
      $out[$v] = $r[2][$k];
    print_r($out);Array
    (
        [.icon-16-alarms ] => /resource/graphics/icons/application-alarms-16px.png
        [.icon-48-alarms ] => /resource/graphics/icons/application-alarms-48px.png
    )
      

  12.   


    /***************************************************************************************/
    /*  grid icon Classes begin */
    .grid-row-select-subana {
    background-image:url(/resource/graphics/icons/star.png) !important;
    }
    .grid-row-deselect-subana {
    background-image:url(/resource/graphics/icons/star-empty.png) !important;
    }
    .grid-row-show-subana {
    background-image:url(/resource/graphics/icons/magnifier-arrow.png) !important;
    }
    .grid-row-noted-subana {
    background-image:url(/resource/graphics/icons/sticky-note-pin.png) !important;
    }
    .grid-row-unnoted-subana {
    background-image:url(/resource/graphics/icons/sticky-note-pin-mod.png) !important;
    }
    /*  Icon Classes end */
    /***********************************************************Subscriber Analytics End**********************************************//* supsld */
    /*!
     * Ext JS Library 3.0.3
     * Copyright(c) 2006-2009 Ext JS, LLC
     * [email protected]
     * http://www.extjs.com/license
     */
    #custom-slider {
        width:214px;
        padding-top:6px;
        background-image:url(images/ticks.gif);
    }
    #custom-slider .x-slider-thumb {
        background-image:url(images/slider-thumb.png);
    }我这边就在这里出的问题
    得到的结果是这样
    [.grid-row-deselect-subana ] => /resource/graphics/icons/star-empty.png
        [.grid-row-show-subana ] => /resource/graphics/icons/magnifier-arrow.png
        [.grid-row-noted-subana ] => /resource/graphics/icons/sticky-note-pin.png
        [.grid-row-unnoted-subana ] => /resource/graphics/icons/sticky-note-pin-mod.png
        [.0.3
     * Copyright(c) 2006-2009 Ext JS, LLC
     * [email protected]
     * http://www.extjs.com/license
     */
    #custom-slider ] => images/ticks.gif
        [#custom-slider .x-slider-thumb ] => images/slider-thumb.png
      

  13.   

    用你 15楼 的数据
    preg_match_all("/^([.#][^{]+).+?url[(']+(.+?)[')]/sm", $s, $r);
    foreach($r[1] as $k=>$v)
      $out[$v] = $r[2][$k];
    print_r($out);Array
    (
        [.grid-row-select-subana ] => /resource/graphics/icons/star.png
        [.grid-row-deselect-subana ] => /resource/graphics/icons/star-empty.png
        [.grid-row-show-subana ] => /resource/graphics/icons/magnifier-arrow.png
        [.grid-row-noted-subana ] => /resource/graphics/icons/sticky-note-pin.png
        [.grid-row-unnoted-subana ] => /resource/graphics/icons/sticky-note-pin-mod.png
        [#custom-slider ] => images/ticks.gif
        [#custom-slider .x-slider-thumb ] => images/slider-thumb.png
    )
      

  14.   

    可以先去掉css中的注释
    $s = preg_replace('/\/\*.*\*\//sU','',$s);然后再应用上面的正则