当前位置:编程学习 > C#/ASP.NET >>

c# 正则表达式

IsMaych 我列举的其中的一种

 public static void RunIsMatch()        

{           

 string inputString = "Welcome to the publishers, Wrox Pree Ltd";           

 if (Regex.IsMatch(inputString, "wrox pree", RegexOptions.IgnoreCase))//匹配在inputString是否存在wrox pree,大小写忽略           

 {                

Console.WriteLine("Match Found");            

}            

else            

{               

 Console.WriteLine("No Match Found");            

}       

 }

 

#region Replce() 的用法

 public static void RunReplce()        

{            

string input = "Welcome to the publishers, Wrox Pree Ltd";            

input = Regex.Replace(input,"Wrox Pree","wrox pree");            

Console.WriteLine(input);
string inputString = "123,456,123,123,789,123,888";            

Regex regExp = new Regex("123");            

inputString = regExp.Replace(inputString, "xxx", 2, 4);//4表示从第4个开始,2表示为最多替换两次            

Console.WriteLine(inputString);        

}

#endregion

 

#region 正则表达式中Split ()的用法

public static void RunSplit()        

{            

String inputString = "123, ABC,456,DEF,789";            

String[] splitResults;            

splitResults = Regex.Split(inputString,", |,");//拆分,以逗号或(逗号和空格组合的)            

StringBuilder resultBulider = new StringBuilder(32);            

Console.WriteLine(splitResults.Length);            

foreach (string stringElement in splitResults)            

{                

resultBulider.AppendFormat("{0}:{1} ","af",stringElement);            

}            

Console.WriteLine(resultBulider.ToString());        

}

#endregion

 

 

/// <summary>       

/// 匹配在字符串里都是数字        

/// </summary>

/// <param name="regexString">要匹配的字符串的格式</param>        

/// <param name="input">要匹配的字符串</param>        

/// <param name="beginning">在输入字符串中开始搜索的字符位置。</param>        

/// <param name="length">子字符串中包含在搜索中的字符数。</param>        

public void RunMatch(string regexString,string input, int beginning, int length)        

{            

Regex myRegex = new Regex(regexString);            

Match matchMade = myRegex.Match(input, beginning, length);            

if (matchMade.Length != length)            

{                

Console.Write("{0}-{1}匹配不成功 ", beginning + 1, length);            

}            

else            

{                

Console.WriteLine("{0}-{1}匹配成功 ", beginning + 1, length);            

}            

#region 在整个字符串中,有其中一些匹配成功就行了,用matchMade.Success            

while (matchMade.Success)            

{                

Console.Write(matchMade.Value);                

matchMade = matchMade.NextMatch();            

}            

#endregion        

}

 

 MatchRegular MatchReg = new MatchRegular();            

String inPut = "123,456";            

String regexString = @"d+";//匹配0-9的数一个或更多            

MatchReg.RunMatch(regexString,inPut, 0, 4);

 

#region Groups和Capture的用法

public static void RunGroups()       

 {        

String string1 = "04:03:27 127.0.0.1 LibertyAssociates lily";        

Regex theReg = new Regex(@"(?<time>(d|:)+)s" + @"(?<ip>(d|.)+)s" + @"(?<site>(S+)s)" + @"(?<site>(S+))");

//我用相同的组site,这里会产生一个问题,后面的组会覆盖前面的组。        

MatchCollection theMatches = theReg.Matches(string1);        

foreach (Match theMatch in theMatches)        

{            

if (theMatch.Length != 0)            

{                

Console.WriteLine(" theMatch:{0}", theMatch.ToString());                

Console.WriteLine("time:{0}", theMatch.Groups["time"]);                

Console.WriteLine("ip:{0}", theMatch.Groups["ip"]);                

Console.WriteLine("site:{0}", theMatch.Groups["site"]);  //输出lily              

Console.WriteLine("site:{0}", theMatch.Groups["site"]); //输出lily                

foreach (Capture cap in theMatch.Groups[

补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,