您好,登錄后才能下訂單哦!
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Text.RegularExpressions;//引用命名空間 namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string str = "zhangdizhangdi"; string pattren = @"zhangdi";//模式 (@:逐字字符串) MatchCollection mc = Regex.Matches(str, pattren, RegexOptions.IgnoreCase); foreach (Match item in mc) { Console.WriteLine(item.Value + "," + item.Index); } Console.ReadKey(); } } }
RegexOptions成員:
(1)“@”符號
符下兩ows表研究室的火熱,當(dāng)晨在“@”雖然并非C#正則表達(dá)式的“成員”,但是它經(jīng)常與C#正則表達(dá)式出雙入對。“@”表示,跟在它后面的字符串是個“逐字字符串”,不是很好理解,舉個例子,以下兩個聲明是等效的:
string x="D:\\My Huang\\My Doc";
string y = @"D:\My Huang\My Doc";
事實上,如果按如下聲明,C#將會報錯,因為“\”在C#中用于實現(xiàn)轉(zhuǎn)義,如“\n”換行:
string x = "D:\My Huang\My Doc";
(2)基本的語法字符。
\d 0-9的數(shù)字
\D \d的補(bǔ)集(以所以字符為全集,下同),即所有非數(shù)字的字符
\w 單詞字符,指大小寫字母、0-9的數(shù)字、下劃線
\W \w的補(bǔ)集
\s 空白字符,包括換行符\n、回車符\r、制表符\t、垂直制表符\v、換頁符\f
\S \s的補(bǔ)集
. 除換行符\n外的任意字符
[…] 匹配[]內(nèi)所列出的所有字符
[^…] 匹配非[]內(nèi)所列出的字符
(3)定位字符
“定位字符”所代表的是一個虛的字符,它代表一個位置,你也可以直觀地認(rèn)為“定位字符”所代表的是某個字符與字符間的那個微小間隙。
^ 表示其后的字符必須位于字符串的開始處
$ 表示其前面的字符必須位于字符串的結(jié)束處
\b 匹配一個單詞的邊界
\B 匹配一個非單詞的邊界
另外,還包括:\A 前面的字符必須位于字符處的開始處,\z 前面的字符必須位于字符串的結(jié)束處,\Z 前面的字符必須位于字符串的結(jié)束處,或者位于換行符前
(4)重復(fù)描述字符
“重復(fù)描述字符”是體現(xiàn)C#正則表達(dá)式“很好很強(qiáng)大”的地方之一:
{n} 匹配前面的字符n次
{n,} 匹配前面的字符n次或多于n次
{n,m} 匹配前面的字符n到m次
? 匹配前面的字符0或1次
+ 匹配前面的字符1次或多于1次
* 匹配前面的字符0次或式于0次
參考文檔:
http://www.cnblogs.com/KissKnife/archive/2008/03/23/1118423.html
http://www.wangqi.com/n9250c53.aspx
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。