---------以前根據(jù)一講師總結(jié):
1.? .點(diǎn)表示任意單個(gè)字符(出\n);
2. a.b--->a2b a.b a*b都可以,但是acvb,不可以單個(gè)字符,a..b就可以了;
3.[]:a[axy]b--->aab,axy都可以,就是三者中的任意一個(gè);
4.a[0-9]b:--->a0b;可以;
5. a[a-z0-9]b--->記住只能為1個(gè);要么數(shù)字要么是字母;
6.a[^xyz],取反,只要不是這三者中的任何一種;
7,z|kk,z或是kk,而不是zk或是kk,|優(yōu)先級(jí)比較低;當(dāng)然可以改成(a|k)k;就行了;括號(hào)改變優(yōu)先級(jí);
8.[0-9a-zA-Z]和\w;\w還包含漢子;
9.abc*,標(biāo)識(shí)*前面的一個(gè)字符出現(xiàn)任意次;若為abc的話:(abc)*;
x(abc)*y---》匹配的是xabcy xabcabcy都可以;
10.? +限定符;至少出現(xiàn)一次;
11. ?:0-1次;
12.x(abc){5}y:標(biāo)識(shí)x和y之間必須有5個(gè)abc;? {n}一定出現(xiàn)n次;
?
13.{n,m}:標(biāo)識(shí) n-m次;>=5&&<=10
14.{n,}標(biāo)識(shí)至少n次;
15.[^]取反,沒有中括號(hào),必須以什么開始,^abc:以abc開始;
16.xyz$:標(biāo)識(shí)以xyz結(jié)尾;^xyz$:標(biāo)識(shí)必須是xyz;
17.a\dz:a3z;\d==[0-9]
18: a\d{5}z ,a12345z;
19:\D:表示0-9除外,類似取反;
20: \s 空白格;看不到的字符都是空白符;
21: \S 非空白符;
22: \W 取反 去漢子和數(shù)字 字母;js內(nèi)不支持漢子;
?
23 ^z|food$---->標(biāo)識(shí)要么以z開頭要么以food結(jié)尾;因?yàn)閮?yōu)先級(jí);
24:z|food:標(biāo)識(shí)只要字符串中出現(xiàn)z或者food就可以;
25:^(z|f)ood$:這個(gè)標(biāo)識(shí)要么是zood要么是food;
?
?
?if (Regex.IsMatch(Console.ReadLine(), patten))
?string s=@"\dsdf";string s=@"\dsdf";
?
----正則表達(dá)式提取字符串:(只提取第一個(gè))
Match ma=Regex.Match(msg,reg);
---輸出的ma.value;
?
----ma.success 屬性判斷是否匹配成功;
-------------------------提取的是所有的;并逐一輸出字符串;
?MatchCollection mc = Regex.Matches("","");
??????????? foreach (Match mn in mc)
??????????? {
??????????????? Console.WriteLine(mn.Value);
??????????? }
-------------------可以通過這種方式提取web頁(yè)面的email地址;
提取組;比如郵箱。如果我們想知道用各種郵箱的種類個(gè)數(shù);
給正則加()括號(hào)來提取組;一個(gè)字符串有三個(gè)()括號(hào)說明有三個(gè)組;
通過獲取 matchcollection 遍歷這個(gè)集合得到match,
match.Groups[1].value,match.Groups[2].value即可;切結(jié)match.Groups[0]標(biāo)識(shí)的是全部的完整的匹配項(xiàng);
---------正則表達(dá)式的貪婪模式:當(dāng)根劇正則提取字符時(shí),就是,
當(dāng)一個(gè)字符滿足要求,多個(gè)也滿足要求 ,但是Regex.Match只能提取一個(gè),結(jié)果它提取的是
最長(zhǎng)的那個(gè)。這就是貪婪模式;(當(dāng)出現(xiàn)矛盾時(shí)候)
字符串:hellow worlddddkkkkkkkkkkkkk 正則:“[a-z]+”,
得到的是 hellow 而不是后面的worldddkkkkk, match只取第一個(gè);
------正則會(huì)盡可能的讓自己都匹配上;
比如str="1111.111.1111。"; reg=".+。";和reg=".+"獲取到的結(jié)果相同,但是是有區(qū)別的。
reg=".+。";中的句號(hào)會(huì)匹配字符串中的句號(hào)。
?
-----比如:str="11。? 1。" reg=".+?。"? 最終匹配的是 "11。" ,因?yàn)闀?huì)讓自己匹配更多。
?
?
---------序列化的對(duì)象必須標(biāo)記上[serializable],父類也要標(biāo)記;父類的字字段火屬性也必須為可
序列化;@"^.+\\(.+)\.[a-zA-Z]+$"
?
-----------正則表達(dá)式提取路徑中的文件名:
?
?string url = @"..\..\guozes\dfsfng\gsdfuo.txt";
??????????? string reg = @"^.+\\(.+)\.[a-zA-Z]+$";
??????????? Match ma = Regex.Match(url, reg);
??????????? if (ma.Success)
??????????? {
??????????????? string s = ma.Groups[1].Value;
??????????????? Console.WriteLine(s);
??????????? }
----------------Regex.Replace("hah???? ahah? aa",@"\s+","");標(biāo)識(shí)把多個(gè)空格替換為一個(gè)空格;
----------------
專業(yè)名詞UBB,html編輯器,發(fā)表論壇,為了防止用戶寫有害腳本,采用特殊格式;[/athha],標(biāo)識(shí)圖片的
路徑格式,會(huì)有正則表達(dá)式進(jìn)行翻譯,匹配,轉(zhuǎn)換為路徑。
?
----------判斷發(fā)表的帖子是否有敏感詞;可以用正則表達(dá)式; "guo|ze|"
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

