對(duì)C#中正則表達(dá)式的一些解讀和總結(jié)(2)_.Net教程
推薦:從Internet上抓取指定URL的源碼的方案(C#)引言: 在做無(wú)線項(xiàng)目的時(shí)候,與通訊公司的數(shù)據(jù)通訊有一部分是通過(guò)XML交互的,所以必須要?jiǎng)討B(tài)抓取通訊公司提供的固定的Internet上的數(shù)據(jù),便研究了一下如何抓取固定url上的數(shù)據(jù),現(xiàn)與
上面的模式對(duì)于刪除任意字符串中的前導(dǎo)和后續(xù)空格都非常有用。在C#中,我們還經(jīng)常使用字母字符串,在一個(gè)字母字符串中,編譯程序不把字符“ \” 作為轉(zhuǎn)義字符處理。在使用字符“\”指定轉(zhuǎn)義字符時(shí),@"..."是非常有用的。另外值得一提的是$1在字符串替換方面的使用,它表明替換字符串只能包含被替換的字符串。
匹配引擎的細(xì)節(jié)
現(xiàn)在,我們通過(guò)一個(gè)組結(jié)構(gòu)來(lái)理解一個(gè)稍微復(fù)雜的例子。看下面的例子:
string text = "abracadabra1abracadabra2abracadabra3";
string pat = @"
( # 第一個(gè)組的開(kāi)始
abra # 匹配字符串a(chǎn)bra
( # 第二個(gè)組的開(kāi)始
cad # 匹配字符串cad
)? # 第二個(gè)組結(jié)束(可選)
) # 第一個(gè)組結(jié)束
# 匹配一次或多次
";
//利用x修飾符忽略注釋
Regex r = new Regex(pat, "x");
//獲得組號(hào)碼的清單
int[] gnums = r.GetGroupNumbers();
//首次匹配
Match m = r.Match(text);
while (m.Success)
{
//從組1開(kāi)始
for (int i = 1; i < gnums.Length; i )
{
Group g = m.Group(gnums[i]);
//獲得這次匹配的組
Console.WriteLine("Group" gnums[i] "=[" g.ToString() "]");
//計(jì)算這個(gè)組的起始位置和長(zhǎng)度
CaptureCollection cc = g.Captures;
for (int j = 0; j < cc.Count; j )
{
Capture c = cc[j];
Console.WriteLine(" Capture" j "=[" c.ToString()
"] Index=" c.Index " Length=" c.Length);
}
}
//下一個(gè)匹配
m = m.NextMatch();
}
分享:ASP.NET對(duì)IIS中的虛擬目錄進(jìn)行操作//假如虛擬目錄名為"Webtest",先在項(xiàng)目中引用 //System.DirectoryServices.dll,再 using System.DirectoryServices; protected System.DirectoryServices.DirectoryEntry di
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-對(duì)C#中正則表達(dá)式的一些解讀和總結(jié)(2)
。