C#正则表达式匹配与替换字符串功能示例
本文实例讲述了C#正则表达式匹配与替换字符串功能。分享给大家供大家参考,具体如下:
事例一:\w+=>[A-Za-z1-9_],\s+=>任何空白字符,()=>捕获
stringtext=@"publicstringtestMatchObjstringsstringmatch"; stringpat=@"(\w+)\s+(string)"; //Compiletheregularexpression. Regexr=newRegex(pat,RegexOptions.IgnoreCase); //Matchtheregularexpressionpatternagainstatextstring. Matchm=r.Match(text); intmatchCount=0; while(m.Success) { Response.Write("Match"+(++matchCount)+"
"); for(inti=1;i<=2;i++) { Groupg=m.Groups[i]; Response.Write("Group"+i+"='"+g+"'"+"
"); CaptureCollectioncc=g.Captures; for(intj=0;j"); } } m=m.NextMatch(); }
该事例运行结果是:
Match1
Group1='public'
Capture0='public',Position=0
Group2='string'
Capture0='string',Position=7
Match2
Group1='testMatchObj'
Capture0='testMatchObj',Position=14
Group2='string'
Capture0='string',Position=27
Match3
Group1='s'
Capture0='s',Position=34
Group2='string'
Capture0='string',Position=36
事例二:
stringx=this.txt.Text; RegexOptionsops=RegexOptions.Multiline; Regexr=newRegex(@"\[(.+?)\]",ops);//\[(.+?)\/\]@"\[(.+)\](.*?)\[\/\1\]" //Response.Write(r.IsMatch(x).ToString()+DateTime.Now.ToString()); if(r.IsMatch(x)) { x=r.Replace(x,"<$1>"); Response.Write(x.ToString()+DateTime.Now.ToString()); //Console.WriteLine("varx:"+x);//输出:Livefornothing } else { Response.Write("false"+DateTime.Now.ToString()); }
这个是为了替换"[]"对,把它们换成"<>"
C#中的正则表达式包含在.NET基础类库的一个名称空间下,这个名称空间就是System.Text.RegularExpressions。该名称空间包括8个类,1个枚举,1个委托。他们分别是:
Capture:包含一次匹配的结果;
CaptureCollection:Capture的序列;
Group:一次组记录的结果,由Capture继承而来;
GroupCollection:表示捕获组的集合
Match:一次表达式的匹配结果,由Group继承而来;
MatchCollection:Match的一个序列;
MatchEvaluator:执行替换操作时使用的委托;
Regex:编译后的表达式的实例。
RegexCompilationInfo:提供编译器用于将正则表达式编译为独立程序集的信息
RegexOptions提供用于设置正则表达式的枚举值
Regex类中还包含一些静态的方法:
Escape:对字符串中的regex中的转义符进行转义;
IsMatch:如果表达式在字符串中匹配,该方法返回一个布尔值;
Match:返回Match的实例;
Matches:返回一系列的Match的方法;
Replace:用替换字符串替换匹配的表达式;
Split:返回一系列由表达式决定的字符串;
Unescape:不对字符串中的转义字符转义。
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#正则表达式用法总结》、《C#编码操作技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》
希望本文所述对大家C#程序设计有所帮助。