如何匹配类似以下的字符串
*{....}
.TD{...}
#TD{...}

解决方案 »

  1.   

    # /* CSS Document */  
    table{  
        border:1px solid red;  
        font-size:12px;  
    }  
    .main {  
        font-size:12px;  
        margin:auto 0px;  
    }  
    #content {  
        float:left;  
        height:200;  
        width:200;  
    }  
    /*I am is comment...*/  
    div a{ color:red; text-decoration:underline;}  
    div a:hover{ color: blue; text-decoration:none;} 
      

  2.   

    *{....}   : @"\*\s*\{.*?\}"
    .TD{...}  : @"(?i)\.td\s*\{.*?\}"
    #TD{...}  : @"(?i)#td\s*\{.*?\}"
      

  3.   


                string style = @"
    .ui-accordion .ui-accordion-header
    {
        cursor: pointer;
        position: relative;
        margin-top: 1px;
        zoom: 1;
    }
    .ui-accordion .ui-accordion-li-fix
    {
        display: inline;
    }
    .ui-accordion .ui-accordion-header-active
    {
        border-bottom: 0 !important;
    }
    .ui-accordion .ui-accordion-header a
    {
        display: block;
        font-size: 1em;
        padding: .5em .5em .5em 2.2em;
    }
    .ui-accordion .ui-accordion-header .ui-icon
    {
        position: absolute;
        left: .5em;
        top: 50%;
        margin-top: -8px;
    }
    .ui-accordion .ui-accordion-content
    {
        padding: 1em 2.2em;
        border-top: 0;
        margin-top: -2px;
        position: relative;
        top: 1px;
        margin-bottom: 2px;
        overflow: auto;
        display: none;
    }
    .ui-accordion .ui-accordion-content-active
    {
        display: block;
    }
    .content
    {
        border: solid 1px gray;
        border-top: none;
    }";
                foreach (Match match in Regex.Matches(style, @"[^}\s]*([^{]+){([^}]+)}"))
                {
                    Console.WriteLine("名称:");
                    Console.WriteLine(match.Groups[1].Value);
                    Console.WriteLine("内容:");
                    Console.WriteLine(match.Groups[2].Value);
                    Console.WriteLine();
                }
      

  4.   


    string style = @"# /* CSS Document */  
    table{  
        border:1px solid red;  
        font-size:12px;  
    }  
    .main {  
        font-size:12px;  
        margin:auto 0px;  
    }  
    #content {  
        float:left;  
        height:200;  
        width:200;  
    }  
    /*I am is comment...*/  
    div a{ color:red; text-decoration:underline;}  
    div a:hover{ color: blue; text-decoration:none;} ";
                foreach (Match match in Regex.Matches(style, @"[^}\s]*([^{/*]+){([^}]+)}"))
                {
                    Console.WriteLine("名称:");
                    Console.WriteLine(match.Groups[1].Value);
                    Console.WriteLine("内容:");
                    Console.WriteLine(match.Groups[2].Value);
                    Console.WriteLine();
                }
      

  5.   

    多谢ojlovecd,不过还有一点问题,comment 会被匹配进去。
      

  6.   

    最后两行全包括的话是: \S+\s?\S+\s?{.+?}
      

  7.   

    感谢coodd的提醒,最后两个匹配用
    \S+\s?\S+\s?{.+?}
    可以完成,
    [^}\s]*([^{/*]+){([^}]+)}可以匹配上面除了
    /*I am is comment...*/  
    div a{ color:red; text-decoration:underline;}  
    div a:hover{ color: blue; text-decoration:none;} ";
    之外的语句,
    有没有比较完美的?非常感谢
      

  8.   

    这是四楼的代码的输出,没有你所说的comment:/*
    名称:table
    内容:    border:1px solid red;
        font-size:12px;
    名称:.main
    内容:    font-size:12px;
        margin:auto 0px;
    名称:#content
    内容:    float:left;
        height:200;
        width:200;
    名称:div a
    内容:
     color:red; text-decoration:underline;名称:div a:hover
    内容:
     color: blue; text-decoration:none;
    */
      

  9.   

    看来是我用的匹配器的问题。没有group吧