正则表达式(Regular Expressions)
regular expression是可以与输入文本匹配的模式。 .Net框架提供了允许这种匹配的正则表达式引擎。 模式由一个或多个字符文字,运算符或构造组成。
用于定义正则表达式的构造
有各种类别的字符,运算符和构造,可用于定义正则表达式。 单击以下链接以查找这些构造。
正则表达式
Regex类用于表示正则表达式。 它有以下常用方法 -
Sr.No. | 方法和描述 |
---|---|
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) 将输入字符串拆分为由正则表达式构造函数中指定的正则表达式模式定义的位置处的子字符串数组。 |
有关方法和属性的完整列表,请阅读有关C#的Microsoft文档。
例子1 (Example 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 (Example 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 (Example 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