正则表达式收集与C#方式实现

1.取出所有的 A标签

[C#] 纯文本查看 复制代码
01
<a[^>]+>(.*?)</a>


2.取出A标签里面的属性
会取出所有的A标签里面的属性

[C#] 纯文本查看 复制代码
01
<a[^>]+>


3.检查是否存在content的Meta

[C#] 纯文本查看 复制代码
01
<meta([^<]*)content=([^<]*)>(.*?)


4.检查是否存在rel的a

[C#] 纯文本查看 复制代码
01
<a([^<]*)rel=([^<]*)>(.*?)


5.获取时间的正则表达式

[C#] 纯文本查看 复制代码
01
\s\d{1,4}-\d{1,2}-\d{1,2}


6.获取以,分开的数字的正则

[C#] 纯文本查看 复制代码
01
\d{1,100}([,]*\d{1,100})*


7.匹配所有的Script标签

[C#] 纯文本查看 复制代码
01
<script[^>]*?>.*?</script>


8.匹配所有的noScript标签

[C#] 纯文本查看 复制代码
01
<noscript[^>]*?>.*?</noscript>


9. 匹配所有的href标签

[C#] 纯文本查看 复制代码
01
href=["'\s]?(.*?)["'


10.取出Html的编码

[C#] 纯文本查看 复制代码
01
02
Match meta = Regex.Match(html, "<meta([^<]*)charset=([^<]*)[\"']", RegexOptions.IgnoreCase | RegexOptions.Multiline);
tring charter = (meta.Groups.Count > 2) ? meta.Groups[2].Value : string.Empty;


11.过滤所有Html代码的方法

[C#] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
/// <summary>
        /// 过滤html标签
        /// </summary>
        /// <param name="strHtml">html的内容</param>
        /// <returns></returns>
        public static string StripHTML(string stringToStrip)
        {
            // paring using RegEx           //
            stringToStrip = Regex.Replace(stringToStrip, "</p(?:\\s*)>(?:\\s*)<p(?:\\s*)>""\n\n", RegexOptions.IgnoreCase | RegexOptions.Compiled);
            stringToStrip = Regex.Replace(stringToStrip, "<br(?:\\s*)/>""\n", RegexOptions.IgnoreCase | RegexOptions.Compiled);
            stringToStrip = Regex.Replace(stringToStrip, "\"""''", RegexOptions.IgnoreCase | RegexOptions.Compiled);
            stringToStrip = StripHtmlXmlTags(stringToStrip);
            return stringToStrip;
        }
 
        private static string StripHtmlXmlTags(string content)
        {
            return Regex.Replace(content, "<[^>]+>""", RegexOptions.IgnoreCase | RegexOptions.Compiled);
        }


使用访求

[C#] 纯文本查看 复制代码
01
string str = StripHTML(html);


12.验证IP地址的正则表达式

13.验证身份证15位和18位

[C#] 纯文本查看 复制代码
01
\d{17}[\d|X]|\d{15}


14.验证URL

[C#] 纯文本查看 复制代码
01
http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?


15.验证电子邮件

[C#] 纯文本查看 复制代码
01
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*


16.验证固定电话

[C#] 纯文本查看 复制代码
01
(\(\d{3}\)|\d{3}-)?\d{8}


17.邮编

[C#] 纯文本查看 复制代码
01
\d{6}
 1// JScript source code
 2//整数
 3"int":"^([+-]?)\\d+$",
 4
 5//正整数
 6"int+":"^([+]?)\\d+$",                               
 7
 8//负整数
 9"int-":"^-\\d+$",                                    
10
11//数字
12"num":"^([+-]?)\\d*\\.?\\d+$",                       
13
14//正数
15"num+":"^([+]?)\\d*\\.?\\d+$"
16
17//负数
18"num-":"^-\\d*\\.?\\d+$",                            
19
20//浮点数
21"float":"^([+-]?)\\d*\\.\\d+$",                      
22
23//正浮点数
24"float+":"^([+]?)\\d*\\.\\d+$",                      
25
26//负浮点数
27"float-":"^-\\d*\\.\\d+$",                           
28
29//邮件
30"email":"^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$",   
31
32//颜色
33"color":"^#[a-fA-F0-9]{6}"      
34
35//联接
36"url":"^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$",  
37
38//仅中文
39"chinese":"^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$"
40
41//仅ACSII字符
42"ascii":"^[\\x00-\\xFF]+$"
43
44//邮编
45"zipcode":"^\\d{6}$"                        
46
47//手机
48"mobile":"^0{0,1}13[0-9]{9}$"
49
50//ip地址
51"ip4":"^\(([0-1]\\d{0,2})|(2[0-5]{0,2}))\\.(([0-1]\\d{0,2})|(2[0-5]{0,2}))\\.(([0-1]\\d{0,2})|(2[0-5]{0,2}))\\.(([0-1]\\d{0,2})|(2[0-5]{0,2}))$",    
52
53//非空
54"notempty":"^\\S+$"
55
56//图片
57"picture":"(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$"
58
59//压缩文件
60"rar":"(.*)\\.(rar|zip|7zip|tgz)$"
61
62//日期
63"date":"^\\d{2,4}[\\/\\-]?((((0?[13578])|(1[02]))[\\/|\\-]?((0?[1-9]|[0-2][0-9])|(3[01])))|(((0?[469])|(11))[\\/|\\-]?((0?[1-9]|[0-2][0-9])|(30)))|(0?[2][\\/\\-]?(0?[1-9]|[0-2][0-9])))$",                  
64
65 //时间
66"time":"^(20|21|22|23|[01]\\d|\\d)(([:.][0-5]\\d){1,2})$"

67
68 //判断图片绝对文件路径
69"time":"^[A-Z]:\\{1,2}[^/:\*\?<>\|]+\.(jpg|gif|png|bmp)$"

/// <summary>
        /// 是否为日期型字符串
        /// </summary>
        /// <param name="StrSource">日期字符串(2008-05-08)</param>
        /// <returns></returns>
        public static bool IsDate(string StrSource)
        {
            return Regex.IsMatch(StrSource, @"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-9]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$");
        }

        /// <summary>
        /// 是否为时间型字符串
        /// </summary>
        /// <param name="source">时间字符串(15:00:00)</param>
        /// <returns></returns>
        public static bool IsTime(string StrSource)
        {
            return Regex.IsMatch(StrSource, @"^((20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d)$");
        }

        /// <summary>
        /// 是否为日期+时间型字符串
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static bool IsDateTime(string StrSource)
        {
            return Regex.IsMatch(StrSource, @"^(((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d)$ ");
        }
原文地址:https://www.cnblogs.com/chengulv/p/221133.html