regex的
---------------------
正则表达式默认是贪婪模式,优先级|不高 没有^高
因为.+要尽可能多的匹配。所以会认为1111。1 1。 111。111111。都是.+匹配的结果,但是由于正则表达式中最后还有一个 : 。 ,所以如果要是将.+匹配了所有的字符,则最后的 。 (句号)无法找到匹配,正则表达式会尽可能的找到匹配,所以会将 。(句号)尝试给正则表达式中的最后一个字符(句号)来匹配,然后把前面的所有字符都用.+;来匹配。
---------------------
?功能是可有可无那个字符串
二。终结贪婪模式
按最小的匹配
-----------
当正则表达式提取的时候,如果一个字符也能匹配,多个也能匹配,
使用最多的字符的方式进行匹配。这个就叫做贪婪模式
--------------
正则表达式还可以用来进行字符串提取
Match match = Regex.Match("age=30",
@"^(.+)=(.+)$");
if (match.Success)
{
Console.WriteLine(match.Groups[1] .Value);
Console.WriteLine(match.Groups[2] .Value);
}
match的Success属性表示是否匹配成功;正则表达式中用()将要提取的内容括起来,然后就可以通过Match的Groups属性来得到所有的提取元素,注意Groups的序号是从1开始的,0有特殊含义。 foreach (Match match in mc)
{
#region MyRegion
//match.Groups[0].Value中存储的值遇match.Value中存储的值是一样的
//表示提取到的Email的完整字符串
//match.Value
//Console.WriteLine(match.Value);
//switch (match.Groups[2].Value)
//{
// default:
//}
第0组是全部的名称
第二组是第一个小括号
以此类推
Console.WriteLine(match.Groups[0].Value);
Console.WriteLine(match.Groups[1].Value);
Console.WriteLine(match.Groups[2].Value);
Console.WriteLine(match.Groups[3].Value);
#endregion
#region MyRegion
/
}
---------------------------