asp.net正则表达式

导入引用命名空间:using System.Text.RegularExpressions
             
            //Regex类,常用方法:
             
            //摘要:1.IsMatch(String);2.IsMatch(String, Int32);3.IsMatch(String, String);4.IsMatch(String, String, RegexOptions);5.IsMatch(String, String, RegexOptions, TimeSpan)
            //返回结果:如果正则表达式找到匹配项,则为 true;否则,为 false。
            //应用实例:验证邮政编码(5个数字)
            bool bl1 = new Regex(@"^\d{5}$").IsMatch("55720");  //结果:True

            bool bl2 = new Regex(@"^[A-Za-z0-9]$").IsMatch("a55b720", 2);  //结果:False 

            bool bl3 = Regex.IsMatch("55720", @"^\d{5}$");      //结果:True
            
            //Success属性
            Match match = regex.Match(input);
            while (match.Success) {
                  // Handle match here...
                  match = match.NextMatch();
            }  

            bool bl4 = Regex.IsMatch("55720", @"^\d{5}$", RegexOptions.IgnoreCase);//结果:True
            
            //摘要:1.Match(String);2.Match(String, Int32);3.Match(String, String);4.Match(String, Int32, Int32);5.Match(String, String, RegexOptions);
            //返回结果:一个对象,包含有关匹配项的信息。
            //应用实例:取得网页标题   
            string str = Regex.Match("<title>贵源网络</title>", "<title>([^<]*)</title>", RegexOptions.IgnoreCase | RegexOptions.Multiline).Groups[1].Value;  //结果:贵源网络 
            //注意:Regex.Match方法得到的Groups的索引是从1开始的,而不是从0开始的
          

            //摘要:1.Matches(String);2.Matches(String, Int32);3.Matches(String, String);4.Matches(String, String, RegexOptions);5.Matches(String, String, RegexOptions, TimeSpan);
            //返回结果:如果在输入字符串中发现包含任何或全部匹配,则返回匹配集合对象。
            //应用实例:遍历匹配字符串的值和项
            foreach (Match m in Regex.Matches("ababb", "a*"))
            {
                Response.Write(String.Format("{0}-{1},", m.Value, m.Index));    //结果:a-0,-1,a-2,-3,-4,-5, 
            } 
            

            //摘要:
            //1.Replace(String, String);2.Replace(String, MatchEvaluator);3.Replace(String, String, Int32);4.Replace(String, String, String);5.Replace(String, String, MatchEvaluator);
            //6.Replace(String, MatchEvaluator, Int32);7.Replace(String, String, Int32, Int32);8.Replace(String, String, String, RegexOptions);9.Replace(String, String, MatchEvaluator, RegexOptions);
            //10.Replace(String, MatchEvaluator, Int32, Int32);11.Replace(String, String, String, RegexOptions, TimeSpan);12.Replace(String, String, MatchEvaluator, RegexOptions, TimeSpan)
            //返回结果:用给定的替换字符串替换输入字符串中的匹配。
            //应用实例: 替换字符串 " ",将其用单个空格字符代替。
            string str1 = new Regex(@"\s+").Replace("This   is    text", " "); //结果:This is text 
           
            //string str2 = new Regex(@"\w+").Replace("four score and seven years ago", new MatchEvaluator("CapText"));

            string str3 = new Regex("(\\w)\\1").Replace("a1b2c3d4f5", "$1", 5);  //结果:a1b2c3d4f5 

            string str4 = Regex.Replace("This is   text", "\\s+", " "); //结果:This is text 
            
            //摘要:1.Regex.Split (String);2.Regex.Split (String, Int32);3.Regex.Split (String, String);4.Regex.Split (String, Int32, Int32);5.Regex.Split (String, String, RegexOptions) 
            //返回结果:将输入字符串拆分成用正则表达式匹配分开的数组元素时,返回数组字符串。
            //应用实例:以'-'为一组进行分隔成数组
            int len1 = new Regex("(-)").Split("one-two-three").Length;  //结果:3 

            int len2 = new Regex(@"\d+").Split("123ABCDE456FGHIJKL789MNOPQ012", 3).Length;    //结果:3 

            int len3 = Regex.Split("plum-pear", "-").Length;   //结果:2

            //结果:, ABCDE, FGHIJ789KLMNO012PQRST 
            Regex rgx = new Regex(@"\d+");
            string input = "123ABCDE456FGHIJ789KLMNO012PQRST";
            Match m = rgx.Match(input);
            if (m.Success)
            {
                string[] result = rgx.Split(input, 3, m.Index);
                for (int ctr = 0; ctr < result.Length; ctr++)
                {
                    Response.Write(result[ctr]);
                    if (ctr < result.Length - 1)
                        Response.Write(", ");
                }
            }

            int len5 = Regex.Split("Abc1234Def5678Ghi9012Jklm", "[a-z]+", RegexOptions.IgnoreCase).Length;//结果:1
            
            //Regex类,常用属性
             
            Compiled
            当在循环中执行许多匹配操作时使用此选项。这可以节省每一循环的分析表达式步骤。

            Multiline
            它与输入字符串中的行数没有关系。确切地说,它只修改 ^ 和 $ 的方式,以便匹配行开始 (BOL) 和行结尾 (EOL),而不是匹配整个输入字符串的开始和结尾。

            IgnoreCase
            使模式在匹配搜索字符串时忽略大小写。

            IgnorePatternWhitespace
            允许根据需要在模式中包括任意数量的空白区域,也支持使用 (?# 注释 #) 语法在模式中加入注释。

            SingleLine
            它与输入字符串中的行数没有关系。更确切地说,它将导致 .(句点)元字符匹配任意字符,而不是除 \n 之外的任意字符(默认情况)。

 

转载于:https://www.cnblogs.com/sntetwt/p/3517688.html

资源下载链接为: https://pan.quark.cn/s/f989b9092fc5 HttpServletRequestWrapper 是 Java Servlet API 中的一个工具类,位于 javax.servlet.http 包中,用于对 HttpServletRequest 对象进行封装,从而在 Web 应用中实现对 HTTP 请求的拦截、修改或增强等功能。通过继承该类并覆盖相关方法,开发者可以轻松地自定义请求处理逻辑,例如修改请求参数、添加请求头、记录日志等。 参数过滤:在请求到达处理器之前,可以对请求参数进行检查或修改,例如去除 URL 编码、过滤敏感信息或进行安全检查。 请求头操作:可以修改或添加请求头,比如设置自定义的 Content-Type 或添加认证信息。 请求属性扩展:在原始请求的基础上添加自定义属性,供后续处理使用。 日志记录:在处理请求前记录请求信息,如 URL、参数、请求头等,便于调试和监控。 跨域支持:通过添加 CORS 相关的响应头,允许来自不同源的请求。 HttpServletRequestWrapper 通过继承 HttpServletRequest 接口并重写其方法来实现功能。开发者可以在重写的方法中添加自定义逻辑,例如在获取参数时进行过滤,或在读取请求体时进行解密。当调用这些方法时,实际上是调用了包装器中的方法,从而实现了对原始请求的修改或增强。 以下是一个简单的示例,展示如何创建一个用于过滤请求参数的包装器: 在 doFilter 方法中,可以使用 CustomRequestWrapper 包装原始请求: 这样,每当调用 getParameterValues 方法时,都会先经过自定义的过滤逻辑。 HttpServletRequestWrapper 是 Java Web 开发中一个强大的工具,它提供了灵活的扩展性,允许开发者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值