2008年4月14日 星期一

以正規式擷取特定字串

正規式真是個好物阿!!....用於擷取某些特定字串還真是不錯的解法,
包仔就介紹目前所應用的正規式寫法,且看分曉!!

比對格式如下:

〈A NAME="#_line_1"〉第1行
〈A NAME="#_line_2"〉第2行
〈A NAME="#_line_3"〉第3行
〈A NAME="#_line_4"〉第4行
〈A NAME="#_line_5"〉第5行
〈A NAME="#_line_6"〉第6行
〈A NAME="#_line_7"〉第7行
〈A NAME="#_line_8"〉第8行
〈A NAME="#_line_9"〉第9行

所用到的正規式如下:

(?i)[〈](?〈tag〉\w+)\s[^〉]*?(?〈name〉NAME)=['\"](?〈url〉.*?)[\"'].*?[〉](?〈Con〉.*)[^〈]

解出的字串集合為
[tag]
[name]
[url]
[Con]

取出方法如下:

foreach (Match m in Regex.Matches(Contents, "(?i)[〈](?〈tag〉\\w+)\s[^〉]*?(?〈name〉NAME)=['\\"](?〈url〉.*?)[\\"'].*?[〉](?〈Con〉.*)[^〈]"))
{
m.Groups["tag"].ToString()
m.Groups["name"].ToString()
m.Groups["url"].ToString()
m.Groups["Con"].ToString()
}


依序將以上標籤逐一取出即可。

HEMiDEMi Technorati Del.icio.us MyShare個人書籤 Yahoo

0 意見: