zoukankan      html  css  js  c++  java
  • 一般应用场景

      正则表达式提供了功能强大、灵活而又高效的方法来处理文本。正则表达式的全面模式匹配表示法使您可以快速分析大量文本以找到特定的字符模式;验证文本以确保它匹配预定义的模式(如电子邮件地址);提取、编辑、替换或删除文本子字符串;将提取的字符串添加到集合以生成报告。 对于处理字符串或分析大文本块的许多应用程序而言,正则表达式是不可缺少的工具。,主要是用在以下几个方面。

    1. 查找
    2. 替换
    3. 分割

    查找

      查找一般也有两个应用场景,一是在做表单输入验证,此时需用到Regex类的IsMatch方法。另一个是当你需要在一大段文本中查找出符合规则的内容时,这时要用到Regex类的Matche或Matches方法。

      当在服务端要对表单输入做验证的时候,我们通常会这样做,代码如下。

    /// <summary>
            /// 表单输入验证时
            /// </summary>
            [TestMethod]
            public void RegexFind1()
            {
                bool result = Regex.IsMatch("0717-11112222", @"^0d{2,3}-d{8}$",RegexOptions.IgnoreCase);
            }

    返回结果为bool值,注意这里的正则我用到了两个元字符^和$,关于它们的作用我们后面会讲到。

      当我们需要在一大段文本中查找符合定义规则的内容时,我们通常会像下面这样做,代码如下。

    /// <summary>
            /// 从一段文本中查找符合规则的字符串
            /// </summary>
            [TestMethod]
            public void RegexFind2()
            {
                List<string> result = new List<string>();
    
                string input = "027-11112222@0717-22223333@020-55552222@0769-14528745";
                string pattern = @"0d{2,3}-d{8}";
                MatchCollection matchList= Regex.Matches(input, pattern, RegexOptions.IgnoreCase);
                if (matchList != null && matchList.Count > 0)
                {
                    foreach (Match match in matchList)
                    {
                        result.Add(match.Value);
                    }
                }
            }

    返回结果是一个列表,如下图。

    替换

      关于替换,通常是通过调用 Regex类的Replace 方法替换匹配正则表达式模式的文本,得到我们想要的结果。示例代码如下。

    /// <summary>
            /// 将输入字符串中的Mr.,Mrs.,Miss.和Ms.替换成空格
            /// </summary>
            [TestMethod]
            public void RegexReplace()
            {
                string input = "Mr. Henry Hunt,Ms. Sara Samuels,Abraham Adams,Ms. Nicole Norris";
                string pattern = @"(Mr.?s|Mrs.?s|Misss|Ms.?s)";
                string result = Regex.Replace(input,pattern,string.Empty);
            }

    程序输出结果如下图。

    可以发现,符合规则的内容都被移除了。

    分割

      分割暂时还没有用过,待后面再补充。。。

  • 相关阅读:
    mysql 查看并修改默认端口号
    安装MySQL-python 的问题
    mysql安装使用
    SAE部署Django1.6+MySQL
    Yii2框架学习 4-2小部件学习 (DetailView、ActiveForm、GridView 、ActionColumn 动作列的配置属性)
    Yii2框架学习 3-4 查询构建器QueryBuilder 的学习
    Yii2框架学习 4-2 HTML助手类、 Array Helper助手类
    Yii2框架学习 3-3 单条数据详情展示; 数据关联查询时 hasOne和hasMany
    Yii框架学习 3-2 数据库操作--ActiveRecord 操作和生命周期
    Yii2框架学习 3-1 yii连接数据库和使用数据库 数据库查询总结
  • 原文地址:https://www.cnblogs.com/mcgrady/p/4043942.html
Copyright © 2011-2022 走看看