利用ASP.NET的Regex取出.css檔裡的樣式名稱
最近同事在問有沒有可以讀取css檔的.net framework 2.0的類別可以用....
我也不知道有沒有..但有找到一些open source的API可以用,是java的
也找到了一個用正規表達式的方法...取出css檔裡的所有樣式名稱..分享給大家呀..
c#範例:
01 using System;
02 using System.Data;
03 using System.Configuration;
04 using System.Collections;
05 using System.Web;
06 using System.Web.Security;
07 using System.Web.UI;
08 using System.Web.UI.WebControls;
09 using System.Web.UI.WebControls.WebParts;
10 using System.Web.UI.HtmlControls;
11 using System.Text.RegularExpressions;
12
13 public partial class CSSRegex : System.Web.UI.Page
14 {
15 protected void Page_Load(object sender, EventArgs e)
16 {
17 //假設下面是css檔的內容
18 string css = @"
19
20 .text
21 { /*font-size: 1em;*/
22 color: #0099CC;
23 font-weight: bold;
24 text-decoration: none;
25 list-style-type: decimal;
26 line-height: 1.8em;
27 }
28
29 .h0 {
30 font-size: 1em;
31 color: #009966;
32 text-decoration: none;
33 font-weight: bold;
34 }
35 .h1 {
36 font-size: 1em;
37 color: #669900;
38 text-decoration: none;
39 font-weight: bold;
40 }
41 .h2 {
42 font-size: 1em;
43 color: #FF9933;
44 text-decoration: none;
45 font-weight: bold;
46 }
47
48 ";
49
50 //這行是取出CSS樣式名稱的正規表達式
51 MatchCollection arr = Regex.Matches(css, @"(?<!url\s*\(.*)(\.[-]?[_a-zA-Z][_a-zA-Z0-9-]*|[^\0-\177]*\\[0-9a-f]{1,6}(\r\n[ \n\r\t\f])?|\\[^\n\r\f0-9a-f]*)");
52
53 foreach (Match str in arr)
54 {
55 Response.Write(str.Value + "<br/>");
56 }
57
58 }
59 }
60
02 using System.Data;
03 using System.Configuration;
04 using System.Collections;
05 using System.Web;
06 using System.Web.Security;
07 using System.Web.UI;
08 using System.Web.UI.WebControls;
09 using System.Web.UI.WebControls.WebParts;
10 using System.Web.UI.HtmlControls;
11 using System.Text.RegularExpressions;
12
13 public partial class CSSRegex : System.Web.UI.Page
14 {
15 protected void Page_Load(object sender, EventArgs e)
16 {
17 //假設下面是css檔的內容
18 string css = @"
19
20 .text
21 { /*font-size: 1em;*/
22 color: #0099CC;
23 font-weight: bold;
24 text-decoration: none;
25 list-style-type: decimal;
26 line-height: 1.8em;
27 }
28
29 .h0 {
30 font-size: 1em;
31 color: #009966;
32 text-decoration: none;
33 font-weight: bold;
34 }
35 .h1 {
36 font-size: 1em;
37 color: #669900;
38 text-decoration: none;
39 font-weight: bold;
40 }
41 .h2 {
42 font-size: 1em;
43 color: #FF9933;
44 text-decoration: none;
45 font-weight: bold;
46 }
47
48 ";
49
50 //這行是取出CSS樣式名稱的正規表達式
51 MatchCollection arr = Regex.Matches(css, @"(?<!url\s*\(.*)(\.[-]?[_a-zA-Z][_a-zA-Z0-9-]*|[^\0-\177]*\\[0-9a-f]{1,6}(\r\n[ \n\r\t\f])?|\\[^\n\r\f0-9a-f]*)");
52
53 foreach (Match str in arr)
54 {
55 Response.Write(str.Value + "<br/>");
56 }
57
58 }
59 }
60
執行結果: