首页 > 其他分享 >.NET正则表达式

.NET正则表达式

时间:2024-12-09 21:59:07浏览次数:8  
标签:匹配 string 正则表达式 System 查找 using 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官方参考

标签:匹配,string,正则表达式,System,查找,using,NET
From: https://blog.csdn.net/C6666888/article/details/144355891

相关文章

  • 【Ray tracing with NeRF】Learnable Wireless Digital Twins: Reconstructing Elect
    LearnableWirelessDigitalTwins:ReconstructingElectromagneticFieldwithNeuralRepresentations###1.Overview2.MLmodelfortheEMpropertyandtheinteractionbehaviour2.1NeuralObject\[\mathbf{e}=\widetilde{g}_{\mathscr{E},o}\left......
  • 【Azure Function App】Azure Function 从.Net6 升级到 .Net8 后 Function出现运行时
    问题描述AzureFunction从.NET6升级到.NET8后Function出现运行时版本错误  问题解答因为AzureFunction在使用.NET6时,默认使用的为进程内模型(简单来讲:进程内模型就是应用运行在w3wp.exe中,而独立进程模型是单独的dotnet.exe进程)。而升级到.NET8之后,需要指定FUNCTI......
  • 在Ubuntu 22.04上搭建Kubernetes集群
    Kubernetes简介什么是Kubernetes?Kubernetes(常简称为K8s)是一个强大的开源平台,用于管理容器化应用程序的部署、扩展和运行。它最初由Google设计并捐赠给CloudNativeComputingFoundation(CNCF)来维护,现在已经成为容器编排领域的事实标准。Kubernetes的核心特性服务......
  • 一个.NET开源、免费、功能强大的 PDF 处理工具
    前言在日常工作中PDF文档的处理往往受限于其固有的格式,使得用户在编辑、合并、剪裁等方面面临诸多不便。今天大姚给大家分享一个.NET开源、免费、功能强大的PDF处理工具:PDF补丁丁(PDFPatcher)。项目介绍PDF补丁丁(PDFPatcher)是一款.NET开源(AGPL)、免费、功能强大的PDF处理工......
  • github代码修改指南|乳腺超声肿块分割代码项目|Global Guidance Network for Breast L
    目录此项目相关信息显而易见的错误文件缺失很容易失误的地方此项目相关信息github链接:https://github.com/xorangecheng/GlobalGuidance-Net论文链接(2021MIA论文):https://www.sciencedirect.com/science/article/pii/S1361841521000359github提供的代码质量真的感人,我改了一下......
  • 快速掌握Quartz.Net计划任务调度框架,轻松实现定时任务
    前言Quartz.Net是一个开源的作业调度框架,可以用于管理计划任务和定期执行。Quartz.Net提供了丰富的作业计划选项,例如精确或模糊时间表达式、日期和时间限制等。Quartz.Net采用分布式架构,允许在多个计算机上运行任务。Quartz.Net架构设计Quartz.Net的架构设计采用了经典......
  • Netty 源码分析之 一 揭开 Bootstrap 神秘的红盖头 (服务器端)
    录Netty源码分析之番外篇JavaNIO的前生今世JavaNIO的前生今世之一简介JavaNIO的前生今世之二NIOChannel小结JavaNIO的前生今世之三NIOBuffer详解JavaNIO的前生今世之四NIOSelector详解Netty源码分析之零磨刀不误砍柴工源码分......
  • Netty 源码分析之 一 揭开 Bootstrap 神秘的红盖头 (客户端)
    永顺 2016-10-26阅读 20 分钟41 目录Netty源码分析之番外篇JavaNIO的前生今世JavaNIO的前生今世之一简介JavaNIO的前生今世之二NIOChannel小结JavaNIO的前生今世之三NIOBuffer详解JavaNIO的前生今世之四N......
  • Netty 源码分析之 二 贯穿Netty 的大动脉 ── ChannelPipeline (一)
    目录源码之下无秘密──做最好的Netty源码分析教程Netty源码分析之番外篇JavaNIO的前生今世JavaNIO的前生今世之一简介JavaNIO的前生今世之二NIOChannel小结JavaNIO的前生今世之三NIOBuffer详解JavaNIO的前生今世之四NIOSelector......
  • Netty 源码分析之 三 我就是大名鼎鼎的 EventLoop(二)
    Netty的IO处理循环在Netty中,一个EventLoop需要负责两个工作,第一个是作为IO线程,负责相应的IO操作;第二个是作为任务线程,执行taskQueue中的任务. 接下来我们先从IO操纵方面入手,看一下TCP数据是如何从JavaNIOSocket传递到我们的handler中的.Net......