在C#中使用正則表達式自動匹配並獲取所須要的數據


正則表達式能根據設置匹配各類數據(好比:e-mail地址,電話號碼,身份中號碼等等)。正則表達式功能強大,使用靈活,C#,Java,JavaScript等多種語言都支持正則表達式。在互聯網上「抓取數據」更是少不了使用正則表達式。今天我要說的是在C#中使用正則表達式自動匹配並獲取所須要的數據。

從下面是某個IP查詢網站返回查詢結果的一個部分(字符串),如今就是要從這個字符串中獲取「查詢結果1:」後面的「北京市 網通」。
< td  align ="center" >< ul >< li > 查詢結果1:北京市 網通 </ li >< li > 查詢結果2:北京市 網通 </ li >< li > 查詢結果3:北京市 網通 </ li ></ ul ></ td >

C#相關代碼以下:
string  srcString  =   " <td align=\ " center\ " ><ul><li>查詢結果1:北京市 網通</li><li>查詢結果2:北京市 網通</li><li>查詢結果3:北京市 網通</li></ul></td> " ;
// 匹配 "<li>查詢結果1:" 與 "</li>" 之間的全部字符的正則表達式
string
 regexStr  =   " <li>查詢結果1:(?<key>.*?)</li> " ;
Regex r 
=   new  Regex(regexStr, RegexOptions.None);
Match mc 
=  r.Match(srcString);
string dataStr  = mc.Groups[ " key " ].Value;

說明:
這裏最關鍵的是設置正則表達式: " <li>查詢結果1:(?<key>.*?)</li> "。

字符 正則表達式

描述 網站

<key> spa

根據key獲取由正則表達式匹配的值。 ip

. ci

匹配除 "\n" 以外的任何單個字符。 字符串

* string

匹配前面的子表達式零次或屢次 io

? table

跟在任何一個其餘限制符(*, +, ?, {n}, {n,}, {n,m})後面時,匹配模式是非貪婪的;非貪婪模式儘量少的匹配所搜索的字符串,而默認的貪婪模式則儘量多的匹配所搜索的字符串。 互聯網

dataStr 就是咱們要得的數據:「北京市 網通」。
相關文章
相關標籤/搜索