您好,登錄后才能下訂單哦!
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表研究室的火熱,當晨在“@”雖然并非C#正則表達式的“成員”,但是它經常與C#正則表達式出雙入對。“@”表示,跟在它后面的字符串是個“逐字字符串”,不是很好理解,舉個例子,以下兩個聲明是等效的:
string x="D:\\My Huang\\My Doc";
string y = @"D:\My Huang\My Doc";
事實上,如果按如下聲明,C#將會報錯,因為“\”在C#中用于實現轉義,如“\n”換行:
string x = "D:\My Huang\My Doc";
(2)基本的語法字符。
\d 0-9的數字
\D \d的補集(以所以字符為全集,下同),即所有非數字的字符
\w 單詞字符,指大小寫字母、0-9的數字、下劃線
\W \w的補集
\s 空白字符,包括換行符\n、回車符\r、制表符\t、垂直制表符\v、換頁符\f
\S \s的補集
. 除換行符\n外的任意字符
[…] 匹配[]內所列出的所有字符
[^…] 匹配非[]內所列出的字符
(3)定位字符
“定位字符”所代表的是一個虛的字符,它代表一個位置,你也可以直觀地認為“定位字符”所代表的是某個字符與字符間的那個微小間隙。
^ 表示其后的字符必須位于字符串的開始處
$ 表示其前面的字符必須位于字符串的結束處
\b 匹配一個單詞的邊界
\B 匹配一個非單詞的邊界
另外,還包括:\A 前面的字符必須位于字符處的開始處,\z 前面的字符必須位于字符串的結束處,\Z 前面的字符必須位于字符串的結束處,或者位于換行符前
(4)重復描述字符
“重復描述字符”是體現C#正則表達式“很好很強大”的地方之一:
{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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。