主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
C#

C# 基础

C# 主页
C# 概述
C# 环境
C# 程序结构
C# 基本语法
C# 数据类型
C# 类型转换
C# 变量
C# 常量
C# 运算符
C# 决策结构
C# 循环结构
C# 封装
C# 方法
C# 可空类型
C# 数组
C# 字符串
C# 结构体
C# 枚举
C# 类
C# 继承
C# 多态性
C# 操作符重载
C# 接口
C# 命名空间
C# 预处理
C# 正则表达式
C# 异常
C# 文件与流

C# 高级

C# 属性(Attributes)
C# 反射
C# 属性(Properties)
C# 索引器
C# 委托
C# 事件
C# 集合
C# 泛型
C# 匿名方法
C# 不安全代码
C# 线程

基础

C# 主页
C# 概述
C# 环境
C# 程序结构
C# 基本语法
C# 数据类型
C# 类型转换
C# 变量
C# 常量
C# 运算符
C# 决策结构
C# 循环结构
C# 封装
C# 方法
C# 可空类型
C# 数组
C# 字符串
C# 结构体
C# 枚举
C# 类
C# 继承
C# 多态性
C# 操作符重载
C# 接口
C# 命名空间
C# 预处理
C# 正则表达式
C# 异常
C# 文件与流

高级

C# 属性(Attributes)
C# 反射
C# 属性(Properties)
C# 索引器
C# 委托
C# 事件
C# 集合
C# 泛型
C# 匿名方法
C# 不安全代码
C# 线程

C# 正则表达式


上一章 下一章

正则表达式在 .NET 框架中的应用

正则表达式是一种可以用来匹配输入文本的模式。.Net 框架提供了一个正则表达式引擎,允许进行这样的匹配。一个模式由一个或多个字符字面量、操作符或结构组成。

构造正则表达式的元素

有各种类型的字符、操作符和结构可以帮助你定义正则表达式。点击下面的链接找到这些构造:

  • 字符转义
  • 字符类
  • 锚点
  • 分组构造
  • 限定符
  • 后向引用构造
  • 选择构造
  • 替换
  • 其他构造

Regex 类

Regex 类用于表示一个正则表达式。它有以下常用的方法:

序号 方法 & 描述
1 public bool IsMatch(string input) 指示是否在指定的输入字符串中找到了在 Regex 构造函数中指定的正则表达式的匹配项。
2 public bool IsMatch(string input, int startat) 指示是否在指定的输入字符串中找到了在 Regex 构造函数中指定的正则表达式的匹配项,从字符串中的指定起始位置开始。
3 public static bool IsMatch(string input, string pattern) 指示是否在指定的输入字符串中找到了指定的正则表达式的匹配项。
4 public MatchCollection Matches(string input) 在指定的输入字符串中搜索所有符合正则表达式的实例。
5 public string Replace(string input, string replacement) 在指定的输入字符串中,将所有符合正则表达式模式的字符串替换为指定的替换字符串。
6 public string[] Split(string input) 根据在 Regex 构造函数中指定的正则表达式模式,将输入字符串分割成子字符串数组。

对于完整的方法和属性列表,请参阅微软关于 C# 的文档。

示例 1

下面的示例匹配以 'S' 开头的单词:

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      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);
         }
      }
      static void Main(string[] args) {
         string str = "A Thousand Splendid Suns";
         
         Console.WriteLine("Matching words that start with 'S': ");
         showMatch(str, @"\bS\S*");
         Console.ReadKey();
      }
   }
}

当以上代码被编译和执行时,会产生如下结果:

Matching words that start with 'S':
The Expression: \bS\S*
Splendid
Suns

示例 2

下面的示例匹配以 'm' 开头并且以 'e' 结尾的单词:

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      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);
         }
      }
      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");
         Console.ReadKey();
      }
   }
}

当以上代码被编译和执行时,会产生如下结果:

Matching words start with 'm' and ends with 'e':
The Expression: \bm\S*e\b
make
maze
manage
measure

示例 3

这个示例替换多余的空白:

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
   class Program {
      static void Main(string[] args) {
         string input = "Hello   World   ";
         string pattern = "\\s+";
         string replacement = " ";
         
         Regex rgx = new Regex(pattern);
         string result = rgx.Replace(input, replacement);

         Console.WriteLine("Original String: {0}", input);
         Console.WriteLine("Replacement String: {0}", result);    
         Console.ReadKey();
      }
   }
}

当以上代码被编译和执行时,会产生如下结果:

Original String: Hello   World   
Replacement String: Hello World  
上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图