C#正则表达式匹配与替换字符串功能示例
本文实例讲述了c#正则表达式匹配与替换字符串功能。分享给大家供大家参考,具体如下:
事例一:\w+=>[a-za-z1-9_],\s+=>任何空白字符,()=>捕获
string text = @"public string testmatchobj string s string match "; string pat = @"(\w+)\s+(string)"; // compile the regular expression. regex r = new regex(pat, regexoptions.ignorecase); // match the regular expression pattern against a text string. match m = r.match(text); int matchcount = 0; while (m.success) { response.write("match"+ (++matchcount) + "<br>"); for (int i = 1; i <= 2; i++) { group g = m.groups[i]; response.write("group"+i+"='" + g + "'" + "<br>"); capturecollection cc = g.captures; for (int j = 0; j < cc.count; j++) { capture c = cc[j]; response.write("capture"+j+"='" + c + "', position="+c.index + "<br>"); } } 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
事例二:
string x = this.txt.text; regexoptions ops = regexoptions.multiline; regex r = new regex(@"\[(.+?)\]", 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("var x:" + x);//输出:live for nothing } 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正则表达式在线测试工具:
正则表达式在线生成工具:
更多关于c#相关内容感兴趣的读者可查看本站专题:《c#正则表达式用法总结》、《c#编码操作技巧总结》、《c#中xml文件操作技巧汇总》、《c#常见控件用法教程》、《winform控件用法总结》、《c#数据结构与算法教程》、《c#面向对象程序设计入门教程》及《c#程序设计之线程使用技巧总结》
希望本文所述对大家c#程序设计有所帮助。