/* alarms */
.aaa {
    background-image:url(/a.png) !important;
}
.bbb {
    background-image:url(/b.png) !important;
}
.ccc{
    background-image:url(/c.gif) !important;
}.ddd{ color: black;}
.eee{background-image:url(/e.png) !important;}文件内容如上, 现在需要提取每个css名字以及行号,
比如  
1: .aaa
4:  .bbb
7:  .ccc
9:  .ddd
10: .eee
写一个正则应该不难 但怎么得到行号信息

解决方案 »

  1.   

    写成这样是可以的$s =<<< TEXT
    /* alarms */
    .aaa {
        background-image:url(/a.png) !important;
    }
    .bbb {
        background-image:url(/b.png) !important;
    }
    .ccc{
        background-image:url(/c.gif) !important;
    }.ddd{ color: black;}
    .eee{background-image:url(/e.png) !important;}TEXT;
    $i = 0;
    echo preg_replace("/^(\.)?/me", '++$i.":$1"', $s);
    1:/* alarms */
    2:.aaa {
    3:    background-image:url(/a.png) !important;
    4:}
    5:.bbb {
    6:    background-image:url(/b.png) !important;
    7:}
    8:.ccc{
    9:    background-image:url(/c.gif) !important;
    10:}.ddd{ color: black;}
    11:.eee{background-image:url(/e.png) !important;}写成你那样还得想想
      

  2.   

    $s =<<< TEXT
    /* alarms */
    .aaa {
        background-image:url(/a.png) !important;
    }
    .bbb {
        background-image:url(/b.png) !important;
    }
    .ccc{
        background-image:url(/c.gif) !important;
    }
    .ddd{ color: black;}
    .eee{background-image:url(/e.png) !important;}TEXT;
    $i = 0;
    echo preg_replace_callback("/^(\.)?/m", 'foo', $s);
    function foo($r) {
      global $i;
      $i++;
      if($r[1] == '.') return "$i:$r[0]";
      return $r[0];
    }/* alarms */
    2:.aaa {
        background-image:url(/a.png) !important;
    }
    5:.bbb {
        background-image:url(/b.png) !important;
    }
    8:.ccc{
        background-image:url(/c.gif) !important;
    }
    11:.ddd{ color: black;}
    12:.eee{background-image:url(/e.png) !important;}你那个 }.ddd{ color: black;}
    处理起来有点麻烦
      

  3.   


    这个想法很不错,在把文件读出来之后,在每一行前人工加上行号,然后再匹配
    但为啥我echo出来的东西不像你那样是有换行的?