在C#中使用正则表达式最简单的方式
更新记录
本文迁移自Panda666原博客,原发布时间:2021年5月11日。
在.NET中使用正则表达式与其他语言并无太大差异。最简单的使用就是使用Regex类型自带的静态方法。
注意:在.NET中使用正则表达式记得引用命名空间:
using System.Text.RegularExpressions;
检测正则是否匹配成功
使用Regex.IsMatch方法即可,该方法返回一个bool值。
提示:在本文最底下有完整的实例。
实例代码:
if(Regex.IsMatch(beMatch, pattern))
{
Console.WriteLine("匹配成功");
}
else
{
Console.WriteLine("请检查代码");
}
使用正则匹配单个字符串
使用Regex.Match方法即可,该方法返回一个Match类型实例。
提示:在本文最底下有完整的实例。
实例代码:
Match result1 = Regex.Match(beMatch, pattern);
使用正则匹配多个字符串
使用Regex.Matches方法即可,该方法返回一个MatchCollection类型实例。
提示:在本文最底下有完整的实例。
实例代码:
MatchCollection result2 = Regex.Matches(beMatch, pattern);
完整实例代码
using System;
using System.Text.RegularExpressions;
namespace RegexTest
{
class Program
{
static void Main(string[] args)
{
//被匹配的字符串
string beMatch = @"https://www.panda666.com|
https://panda666.com|panda666|666|panda";
//匹配模式
string pattern = @"(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?";
//检测是否匹配成功
if(Regex.IsMatch(beMatch, pattern))
{
Console.WriteLine("匹配成功");
}
else
{
Console.WriteLine("请检查代码");
}
//获得匹配的内容(单个)
Console.WriteLine("获得匹配的内容(单个)");
Match result1 = Regex.Match(beMatch, pattern);
Console.WriteLine(result1.Value); //匹配到的值
Console.WriteLine(result1.Success); //匹配是否成功
Console.WriteLine(result1.Index); //匹配到的起始位置
Console.WriteLine(result1.Length); //匹配到的值的长度
//获得匹配内容(多个)
Console.WriteLine("获得匹配内容(多个)");
MatchCollection result2 = Regex.Matches(beMatch, pattern);
foreach (Match item in result2)
{
Console.WriteLine(item.Success);
Console.WriteLine(item.Value);
Console.WriteLine(item.Index);
Console.WriteLine(item.Length);
}
//wait
Console.ReadKey();
}
}
}
本文来自博客园,作者:重庆熊猫,转载请注明原文链接:https://www.cnblogs.com/cqpanda/p/16151301.html