• 正则表达式收集与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)$ ");
            }
  • 相关阅读:
    JVM-对象的创建
    maven依赖无法下载依赖包,PKIX认证不通过
    Object里面的方法
    Java多线程之volatile与synchronized比较
    java 二叉树的创建 遍历
    设计模式之单例模式
    博客园自定义主题 皮肤
    mysql索引 b+树
    sleep和wait的区别(转)
    final/finally/finalize的区别(转)
  • 原文地址:https://www.cnblogs.com/chengulv/p/221133.html
Copyright © 2020-2023  润新知