string css = //css texten;
string reg = @"((\w*\..*?){(.*?)})";
MatchCollection mc = Regex.Matches(css, reg, RegexOptions.Singleline);
foreach(Match m in mc)
{
Response.Write(m.Groups[2].Value + "<br/>");
string[] grr = m.Groups[3].Value.Split(';');
foreach(string s in grr)
Response.Write(" " + s + "<br/>");
}
Hoj
Jag ska gå igenom en cssfil och skriva ut lite css-klasser tänkte jag... lättare sagt än gjort verkar det som. ASP.NET verkar vara lite tjurig med mina regexar, som funkar finfint i regulator.
Cssen kan se ut på ganska många olika sätt, men jag vill ändå kunna söka efter ett klassnamn, så ska den matcha alla förekomster...
Så här ser min regex ut nu (.GridFooter är input, ska matcha fetstilade texten nedan. Den gör det i regulator.):
^[\w]*.GridFooter[ ,\t\n]*[^{]*[^}]*}
Här är en del av den data den ska ta ifrån:
/*
* Data grid styles
*/
/* Main grid table */
table.Grid {
width: 100%;
}
/* Each td in the grid table */
table.Grid td {padding: 3px;}
/* Each grid item */
tr.GridItem td {
}
/* Every other grid item */
tr.GridAlternatingItem td {
background-color: #F5F5F5;
}
/* Selected grid item */
tr.GridSelectedItem td {
background-color: #E8E7E3;
font-weight: bold;
}
/* Grid header */
tr.GridHeader td {
border-bottom: 1px solid #99A197;
font-weight: bold;
}
/* Grid footer, most often not used */
[B]tr.GridFooter td {
border-top: 3px double #99A197;
font-weight: bold;
}[/B]
/* Edit item, most often not used */
tr.GridEditItem td {}
/* Grid paging style */
tr.GridPager td {
text-align: center;
}
Det verkar som att ASP.NET tolkar mitt första ^ som att det ska vara i början på hela strängen, och inte bara början på raden.
Om nåt är oklart, hojta till...