C#使用正则表达式
声明:本文只说明c#怎么使用正则表达式,是自己学习的一点笔记,不会深入介绍
首先,你需要引用正则表达式的库
using System.Text.RegularExpressions;
然后,你需要明确:你想从什么样的文本(源文本)中,去获取你想要的信息(目标文本)
比如:你需要从 "我的联系方式,qq274743199,我的电话xxxx"这一句文本中,提取qq号
我们提炼出信息如下:
源文本:
string teststring = "我的联系方式,qq274743199,我的电话xxxx";
目标文本:
274743199
这时候,你就需要定义一个正则表达式去匹配你的目标文本:
string zzstring = null;
zzstring = @"qq(\d+),";
注:当然这里直接使用(\d+)也是可以的,但是在为了提高精准度,可以加入前后不变的关键字或格式,缩小匹配范围,提高匹配公式的健壮性
好了,可以开始匹配了
MatchCollection mc=Regex.Matches(teststring, zzstring);
Console.WriteLine(mc.Count);
if (mc.Count > 0)
{
Console.WriteLine("匹配成功");
Console.WriteLine("匹配结果:{0}", mc[0].Groups[0].Value);//匹配结果
qq = mc[0].Groups[1].Value;
Console.WriteLine("匹配子结果:{0}", qq);//第一个子表达式
}
else
{
Console.WriteLine("匹配成功,但是结果为空");
}
额外知识点,设置匹配模式
MatchCollection mc = Regex.Matches(teststring, zzstring,RegexOptions.IgnoreCase|RegexOptions.Multiline);
完整代码: