欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#正则表达式匹配与替换字符串功能示例

程序员文章站 2023-11-12 19:35:28
本文实例讲述了c#正则表达式匹配与替换字符串功能。分享给大家供大家参考,具体如下: 事例一:\w+=>[a-za-z1-9_],\s+=>任何空白字符,()=...

本文实例讲述了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#程序设计有所帮助。