C# 正则表达式常用的符号和模式解析(最新推荐)

C# 正则表达式常用的符号和模式解析(最新推荐)

前言

正则表达式是一种灵活有强大的工具,可用于输入验证、搜索替换以及字符串处理等方面。在C#编程中,正则表达式提供了非常好用而且高效的支持。本文将详细讲解C#中正则表达式的常用符号和模式,帮助大家更好地掌握正则表达式的使用。

常用的符号

普通字符

普通字符是指没有特殊含义的字符,比如数字、字母、特殊字符等等。在正则表达式中,普通字符表示它本身。

转义字符

转义字符是指用于表示一些特殊字符的字符,一般使用“\”进行转义。常见的转义字符包括:

  • \t 表示制表符
  • \r 表示回车符
  • \n 表示换行符
  • \d 表示数字的简写形式
  • \w 表示字母数字字符
  • \s 表示空白字符
  • \b 表示边界符

边界符

边界符用于表示字符串边界的位置,常见的边界符包括:

  • ^ 表示字符串的开头
  • $ 表示字符串的结尾
  • \b 表示单词边界
  • \B 表示非单词边界

选择符

选择符用于匹配多个表达式中的其中之一,使用“|”表示。比如,“a|b”可以匹配字符串中的a或者b。

分组符

分组符用于把一些字符作为一个整体进行处理,使用小括号“()”表示。常见的分组符包括:

  • (x) 表示把x作为一个整体
  • (?:x) 表示不捕获x
  • (?=x) 表示x前面的字符匹配成功才算成功
  • (?!x) 表示x前面的字符匹配失败才算成功

常用的模式

基本模式

基本模式是指匹配单个字符的模式,常见的基本模式包括:

  • . 匹配除换行符以外的任意字符
  • [xyz] 匹配x、y或z中的任意一个字符
  • [^xyz] 匹配除x、y、z以外的任意字符
  • \d 匹配数字字符
  • \w 匹配字母数字字符
  • \s 匹配空白字符
  • \X 匹配Unicode扩展字符

量词模式

量词模式是指匹配多个字符的模式,常见的量词模式包括:

    • 匹配前面的字符0次或多次
    • 匹配前面的字符1次或多次
  • ? 匹配前面的字符0次或1次
  • {m} 匹配前面的字符恰好m次
  • {m,n} 匹配前面的字符至少m次,至多n次

贪婪模式和懒惰模式

贪婪模式会尽可能多的匹配字符,而懒惰模式则会尽可能少的匹配字符。贪婪模式和懒惰模式分别使用“*”、“?”、“+”、“{m,n}”加上一个“?”表示。比如,“.+?”表示懒惰模式匹配任意字符。

示例

示例1:匹配IP地址

using System;
using System.Text.RegularExpressions;

class Program {
    static void Main(string[] args) {
        string pattern = @"^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
                          (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
                          (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
                          (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$";
        string input = "192.168.0.1";
        if (Regex.IsMatch(input, pattern)) {
            Console.WriteLine("合法的IP地址");
        }
        else {
            Console.WriteLine("不合法的IP地址");
        }
    }
}

该程序使用正则表达式匹配IP地址。这里主要使用了边界符、“[]”、“|”等常用的符号。

示例2:匹配HTML标签

using System;
using System.Text.RegularExpressions;

class Program {
    static void Main(string[] args) {
        string input = "<html><head><title>网站标题</title></head><body>网站正文</body></html>";
        string pattern = @"<(\w+)\b[^>]*>(.*?)</\1>";
        MatchCollection matches = Regex.Matches(input, pattern);
        foreach (Match match in matches) {
            Console.WriteLine(match.Value);
        }
    }
}

该程序使用正则表达式匹配HTML标签。这里主要使用了分组符、量词模式等常用的模式。

总结

以上就是C#中正则表达式常用的符号和模式解析。掌握正则表达式可以帮助我们更加高效地处理字符串,所以认真学习正则表达式的基础知识是非常必要的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 正则表达式常用的符号和模式解析(最新推荐) - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • C#实现系统托盘通知的方法

    C#实现系统托盘通知的方法 在Windows应用程序中,系统托盘是一个很重要的交互方式,在不影响用户正常工作的情况下,可以及时方便的向用户提供各种需要处理和展示的数据。C#提供了丰富的API,帮助我们实现系统托盘通知,本文将介绍两种常见的实现方法。 方法一:使用NotifyIcon类实现 NotifyIcon类为我们提供了丰富的事件和属性,使得我们的系统托盘…

    C# 2023年6月7日
    00
  • c#防止多次运行代码收集分享

    下面是“c#防止多次运行代码收集分享”的完整攻略。 为什么需要防止多次运行代码收集分享? 在一些情况下,我们可能需要避免多次运行同一段代码,例如: 程序中涉及到计费、统计等需要唯一记录的操作。 程序中涉及到文件、资源等需要避免重复操作的情况。 这时就需要在代码中增加防止多次运行的机制。 如何防止多次运行代码收集分享? 方法一:使用静态标志位 使用静态标志位的…

    C# 2023年6月7日
    00
  • C#实现对AES加密和解密的方法

    首先,C#实现对AES加密和解密需要使用 System.Security.Cryptography 命名空间中提供的 Aes 类。下面是具体的实现步骤: 1. 导入命名空间 using System.Security.Cryptography; 2. 创建 Aes 对象 Aes aes = Aes.Create(); 3. 设置密钥和向量 密钥和向量是 AE…

    C# 2023年6月8日
    00
  • 利用WCF双工模式实现即时通讯

    下面是关于“利用WCF双工模式实现即时通讯”的完整攻略,包含两个示例。 1. 什么是WCF双工模式 WCF双工模式是一种WCF通信模式,它允许客户端和服务端之间进行双向通信。在WCF双工模式中,客户端和服务端都可以发送和接收消息,这使得WCF双工模式非常适合实现即时通讯。 2. 示例1:创建WCF服务 以下是一个示例,演示如何创建WCF服务: using S…

    C# 2023年5月15日
    00
  • C#使用System.Environment获取电脑的相关属性

    关于C#使用System.Environment获取电脑的相关属性的攻略,以下是我总结的步骤: 步骤一:引用命名空间 在使用System.Environment类获取电脑的相关属性之前,需要先引用命名空间using System;。 步骤二:使用System.Environment类中的方法获取电脑的相关属性 System.Environment类中提供的方…

    C# 2023年6月7日
    00
  • 详解C#读取Appconfig中自定义的节点

    下面是详解C#读取Appconfig中自定义的节点的完整攻略。 一、准备工作 在开始之前,需要先在App.config配置文件中定义自定义节点。可以按照以下格式添加: <configuration> <configSections> <section name="customSection" type=&qu…

    C# 2023年5月15日
    00
  • C#实现将PPT转换成HTML的方法

    下面是详细讲解“C#实现将PPT转换成HTML的方法”的完整攻略。 1. 环境准备 要完成将PPT转换成HTML的任务,需要用到以下工具和环境: Office Interop Assemblies 用于在C#中访问Office文档的API。 Visual Studio 用于编写和运行C#代码。 PowerPoint 用于打开和处理PPT文件。 在安装好Off…

    C# 2023年6月1日
    00
  • C#移除字符串中的不可见Unicode字符 案例代码

    C#移除字符串中的不可见Unicode字符的完整攻略如下: 问题背景 在开发中,有时候字符串中可能会包含非常规的字符,例如不可见的Unicode字符。这些字符虽然不会影响字符串的显示,但会影响字符串的处理和运算。因此,需要移除字符串中的这些非常规字符,以便更好地进行后续的操作。 解决方案 我们可以通过正则表达式来匹配和替换字符串中的非常规字符。具体实现步骤如…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部