当前位置: 首页 > article >正文

.NET正则表达式

正则表达式提供了功能强大、灵活而又高效的方法来处理文本。 正则表达式丰富的泛模式匹配表示法使你可以快速分析大量文本,以便:

  • 查找特定字符模式。

  • 验证文本以确保它匹配预定义模式(如电子邮件地址)。

  • 提取、编辑、替换或删除文本子字符串。

  • 将提取的字符串添加到集合中,以便生成报告。

对于处理字符串或分析大文本块的许多应用程序而言,正则表达式是不可缺少的工具。

定义正则表达式

  • 字符转义

  • 字符类

  • 定位点

  • 分组构造

  • 限定符

  • 反向引用构造

  • 备用构造

  • 替换

  • 杂项构造

以下内容只是一部分经常使用的正则表达式:
模式解释
\$在输入字符串中查找美元符号 ($) 的一个匹配项。 正则表达式模式字符串包含一个反斜杠来指示按字面解释美元符号而非将其作为正则表达式定位点。 单独的 $ 符号将指示正则表达式引擎应尝试在字符串的末尾开始匹配。 为了确保当前区域性的货币符号不被错误解释为正则表达式符号,该示例调用 Regex.Escape方法对该字符进行转义。
\s*查找空白字符的零个或多个匹配项。
[-+]?查找正好或负号的零个或一个匹配项。
([0-9]{0,3}(,[0-9]{3})*(\.[0-9]+)?)外部括号将此表达式定义为捕获组或子表达式。 如果找到匹配项,则有关匹配字符串的此部分的信息可以从第二个 Group]对象中检索(该对象位于 GroupCollection 属性所返回的 Match.Groups对象中)。 集合中的第一个元素表示整个匹配项。
[0-9]{0,3}查找十进制数字0到9的另到三个匹配项。
(,[0-9]{3})*查找后跟三个十进制数字的组分隔符的零个或多个匹配项。
\.查找小数分隔符的一个匹配项。
[0-9]+查找一个或多个十进制数字。
(\.[0-9]+)?查找后跟至少一个十进制数字的小数分隔符的零个或一个匹配项。

在输入字符串中找到每个子模式,则匹配成功,并将包含有关匹配的信息的 **Match**对象添加到 **MatchCollection** 对象。

实例1

匹配m开头e结尾:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace 匹配m和n
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string str = "make maze and manage to measure it";

            Console.WriteLine("Matching words start with 'm' and ends with 'e':");
            showMatch(str, @"\bm\S*e\b");
        }
        private static void showMatch(string text, string expr)
        {
            Console.WriteLine("The Expression: " + expr);
            MatchCollection mc = Regex.Matches(text, expr);
            foreach (Match m in mc)
            {
                Console.WriteLine(m);
            }


        }
    }

}
实例2

替换掉多余的空格:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace _12_9
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string input = "Hello Werld";
            string pattern = "\\s+";
            string repalcement = " ";
            Regex rgx   = new Regex(pattern);
            string regex= rgx.Replace(input,repalcement);
            Console.WriteLine("Original String:{0}",input);
            Console.WriteLine("Replacement String:{0}",regex);

        }
    }
}

总结:

正则表达式是非常强大的工具,但它们也可能变得非常复杂。在编写复杂的正则表达式时,确保对其进行充分测试以验证其行为是否符合预期。

windows官方参考

  • System.Text.RegularExpressions

  • System.Text.RegularExpressions.Regex

  • 正则表达式 - 快速参考(以 Word 格式下载)

  • 正则表达式 - 快速参考(以 PDF 格式下载)


http://www.kler.cn/a/430023.html

相关文章:

  • R语言在森林生态研究中的魔法:结构、功能与稳定性分析——发现数据背后的生态故事!
  • moviepy 将mp4视频文件提取音频mp3 - python 实现
  • RocketMQ 和 Kafka 有什么区别?
  • PLC实现HTTP协议JSON格式数据上报对接的参数配置说明
  • 计算机网络 (23)IP层转发分组的过程
  • OpenAI 故障复盘 - 阿里云容器服务与可观测产品如何保障大规模 K8s 集群稳定性
  • Spark on Yarn安装配置,大数据技能竞赛(容器环境)
  • Sqoop导入数据(mysql---->>hive)
  • 工作中常用springboot启动后执行的方法
  • 计算机视觉在科学研究(数字化)中的实际应用
  • 机器人的动力学前馈控制
  • spring6:2入门
  • “大数据+中职”:VR虚拟仿真实训室的发展前景
  • 柯桥职场商务英语生活英语口语培训外贸纺织口语学习
  • 传输层5——TCP可靠传输的实现(重点!!)
  • vue3中使用mqtt
  • 【Flux.jl】 卷积神经网络
  • 【CDH国产化替代案例】全面简化架构,降低成本,大幅提升数据处理效率
  • ruoyi的excel批量导入
  • Spring Cloud Alibaba:一站式微服务解决方案
  • 【Linux网络编程】第六弹---构建TCP服务器:从基础到线程池版本的实现与测试详解
  • E卷-最少交换次数
  • 距离与AoA辅助的三维测距算法,适用于自适应基站数量的情况。订阅专栏后可直接查看完整源代码
  • 2024-12-05OpenCV高级-滤波与增强
  • [MySQL基础](四)SQL--DQL
  • 媒体查询、浏览器一帧渲染过程