- 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# - 文件 I/O
- C# 高级教程
- C# - 属性
- C# - 反射
- C# - 属性
- C# - 索引器
- C# - 委托
- C# - 事件
- C# - 集合
- C# - 泛型
- C# - 匿名方法
- C# - 不安全代码
- C# - 多线程
- C# 有用资源
- C# - 问题与解答
- C# - 快速指南
- C# - 有用的资源
- C# - 讨论
C# - 正则表达式
正则表达式是可以与输入文本进行匹配的模式。.Net 框架提供了允许此类匹配的正则表达式引擎。模式由一个或多个字符文字、运算符或结构组成。
用于定义正则表达式的构造
有多种类别的字符、运算符和结构可让您定义正则表达式。单击以下链接查找这些构造。
正则表达式类
Regex 类用于表示正则表达式。它有以下常用方法 -
先生。 | 方法与说明 |
---|---|
1 | 公共布尔IsMatch(字符串输入) 指示 Regex 构造函数中指定的正则表达式是否在指定的输入字符串中找到匹配项。 |
2 | 公共布尔IsMatch(字符串输入,int startat) 指示 Regex 构造函数中指定的正则表达式是否在指定输入字符串中从字符串中指定的起始位置开始找到匹配项。 |
3 | public static bool IsMatch(字符串输入,字符串模式) 指示指定的正则表达式是否在指定的输入字符串中找到匹配项。 |
4 | 公共 MatchCollection 匹配(字符串输入) 在指定的输入字符串中搜索所有出现的正则表达式。 |
5 | 公共字符串替换(字符串输入,字符串替换) 在指定的输入字符串中,将与正则表达式模式匹配的所有字符串替换为指定的替换字符串。 |
6 | 公共字符串[]分割(字符串输入) 将输入字符串拆分为子字符串数组,其位置由 Regex 构造函数中指定的正则表达式模式定义。 |
有关方法和属性的完整列表,请阅读有关 C# 的 Microsoft 文档。
实施例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