C#正则表达式匹配与替换字符串功能示例
什么是正则表达式?
正则表达式是一种强大的文本匹配工具,它可以用来匹配、搜索和替换文本中符合特定模式的字符串。在C#中,可以使用System.Text.RegularExpressions命名空间下的正则表达式类来操作正则表达式。
正则表达式语法
以下是常用的正则表达式语法:
语法 | 说明 |
---|---|
. | 匹配任意单个字符 |
\d | 匹配任意数字 |
\w | 匹配任意字母或数字 |
* | 匹配任意数量的前一个字符 |
+ | 匹配至少一个前一个字符 |
? | 匹配零个或一个前一个字符 |
[abc] | 匹配字符串中的a、b或c |
[^abc] | 不匹配字符串中的a、b或c |
() | 分组匹配 |
正则表达式匹配方法
C#中的正则表达式匹配可用Regex.IsMatch()或Regex.Match()方法实现。
using System.Text.RegularExpressions;
string input = "hello world";
string pattern = "world";
bool isMatch = Regex.IsMatch(input, pattern);
Match match = Regex.Match(input, pattern);
Console.WriteLine(isMatch); // 输出:True
Console.WriteLine(match.Value); // 输出:world
正则表达式替换方法
C#中的正则表达式替换可用Regex.Replace()方法实现。
using System.Text.RegularExpressions;
string input = "hello world";
string pattern = "world";
string replacement = "universe";
string result = Regex.Replace(input, pattern, replacement);
Console.WriteLine(result); // 输出:hello universe
示例:将字符串的部分替换为*
以下示例将字符串中的敏感信息替换为号,比如将手机号码中的中间4位替换为号。
using System.Text.RegularExpressions;
string input = "my phone number is 12345678900";
string pattern = @"(\d{3})\d{4}(\d{4})";
string replacement = "$1****$2";
string result = Regex.Replace(input, pattern, replacement);
Console.WriteLine(result); // 输出:"my phone number is 123****8900"
其中,正则表达式@"(\d{3})\d{4}(\d{4})"
表示匹配以3个数字开头和4个数字结尾,中间有4个数字的字符串。"$1****$2"
表示用第一个分组的内容(即前3个数字)和第二个分组的内容(即后4个数字)分别拼接*号替换中间的4个数字。
示例:提取HTML中的文本内容
以下示例提取HTML代码中的文本内容,去除HTML标签。
using System.Text.RegularExpressions;
string input = "<html><body><h1>hello world</h1></body></html>";
string pattern = @"<[a-z]+>.+?</[a-z]+>";
string result = Regex.Replace(input, pattern, "");
Console.WriteLine(result); // 输出:hello world
其中,正则表达式@"<[a-z]+>.+?<!--[a-z]+-->"
表示匹配一对尖括号中包含任意小写字母的标签和它之间的文本内容,其中的问号表示懒惰匹配,即尽可能少地匹配到结束标签。Regex.Replace()
方法将匹配到的标签和之间的内容替换为空字符串,即去除了标签。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#正则表达式匹配与替换字符串功能示例 - Python技术站