菜单

0一三天(.net学习之路-C#基础知识)-正则发挥式一

2019年5月30日 - 金沙前端

 

  单行情势 Single line 让正则表明式的.能相称到\n

   非贪婪形式:”孔圣人.+?。”                        
相称结果:“孔夫子说:5中国人民银行,必有作者妻。” 

四、实例

1、元字符(常用的)

 

 

 

 

3、匹配组

 

 

 

 

    Regex.Matches 提取多少个地位格外结果

二、简写表明式(常用的)** 

 

 

 

 


1、学习正则的时候不要都难忘有些元字符具体的意趣,不过必须理解都有那些作用,方便将来选用到的时候能立时减轻难点。

   贪婪形式:”孔圣人.+。”                          
 匹配结果:“孔仲尼说:6中国人民银行,必有小编妻。择其靓者而娶之。” 

 

实例:字符串:“尼父说:6个中国人民银行,必有笔者妻。择其靓者而娶之。” 

   正则表明式:^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])$ 

 

  在+、*后增加?就成为非贪婪情势(?
的其它2个用场):让其后的相称情势尽早的协作。

 

1  static void Main(string[] args)  2         {  3             string str=@"\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])";//正则表达式(不能匹配润年平年哈)  4             Console.WriteLine(Regex.IsMatch("传说中这一天,也就是2012-2-31是世界末日。", str));//打印判断结果  5             Console.WriteLine(Regex.Match("传说中这一天,也就是2012-2-31是世界末日。", str)); //把匹配的结果打印出来             6             Console.ReadKey();  7   8         }

 

  +、*的卓绝私下认可是名缰利锁的:尽或然多的相称,直到“再贪婪一点儿”其后的至极形式就没办法相称截止。

 

  Match

 

  

序号 表达式 作用 实例
1 \d 匹配一个数字 等同于[0-9]
  \D 匹配非数字 等同于[^0-9]
2 \s 匹配换行符、Tab制表符、空格等空白字符  
  \S 匹配非空白字符  
3 \w 匹配“字母”、“数字”、“下划线”、“汉字”  
  \W 非\w  
4 [\u4e00-\u9fff] 匹配所有汉字  

 

详细请看这位大神的《正则表明式28分钟入门教程》

 

正则表明式

   Regex.IsMatch 字符串相称

4、贪婪形式和非贪婪情势

 二、从网络抓取钦赐网页内的全部email地址

 

  Regex.Replace 正则替换 分组替换

  ()小括号中的能够视作是2个组,在提取的时候全部匹配项是X[0],第一个小括号是X[1],依次类推

 

 

 

 

 

一、判定日期格式是不是合法(20壹3-伍-27、20一三-05-27、2013-0五-伍、20一叁-伍-五都合法)

贰、学习后务必驾驭的知识点
(先学会使用那么些核心就丰盛了,别的的在支付中再去看正是了)

 

  MatchCollection

 

 

 

澳门金沙国际 , 

 

  多行方式 Multiline ^$ 相配每1行的剧情

 

 

 

(学习正则表达式此前必须有个好的工具,笔者利用的是Regulator.exe)

序号 元字符           作用 实例
1 .点 匹配任意单个字符  
2 []中括号 匹配其中单个字符 例[123]或[1-3] 表示匹配1或2或3
3 ()小括号 改变优先集,()中的也表示一个组  
4 |竖线 g|food 匹配g 或 food   ;(g|f)ood 表示匹配good 或 food
5 *星号 0次或多次  
6 + 1次或多次  
7 ? 0次或1次  
8 {} {n}表示确定n次;{n,}表示最少出现n次;{n,x}表示最少出现n次且最多出现x次  
9 ^ ^表示以什么开始  ^123asd 表示以123asd开头;^(123)asd 表示以123开头
10 $  $表示以什么结束  

 

   Regex.Match 字符串提取

 

 

三、C#中如何操作正则表明式

 

 1 static void Main(string[] args)   2         {   3             //邮箱的正则表达式   4             //不知道邮箱能不能以汉字开头,所以没有排除汉字开头   5             //这里定义了邮箱只能以a-z结束   6    7             string reg = @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*[a-z]";   8             //实例化一个WebClient wc来下载URL上的字符串   9             WebClient wc = new WebClient();  10             string str = wc.DownloadString("http://bbs.tianya.cn/post-936-94688-1.shtml");  11             //Match集合MatchCollection 来接收Regex.Matches(str, reg)分析出来的信息。  12             MatchCollection mcs = Regex.Matches(str, reg);  13             //遍历 mcs,打印他的每一个值  14             foreach (Match item in mcs)  15             {  16                 if (item.Success)  17                 {  18                     //如果值里面还有分组请使用item.Groups[n]来取值  19                     Console.WriteLine(item.Value);  20                 }  21             }  22             Console.Read();  23   24         }

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图