源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-02-07 17:10 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#正则表达式匹配与替换字符串功能示例
本文实例讲述了C#正则表达式匹配与替换字符串功能。分享给大家供大家参考,具体如下: [b]事例一:[/b]\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 [b]事例二:[/b]
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基础类库的一个名称空间下,这个名称空间就是[code]System.Text.RegularExpressions[/code]。该名称空间包括8个类,1个枚举,1个委托。他们分别是: Capture: 包含一次匹配的结果; CaptureCollection: Capture的序列; Group: 一次组记录的结果,由Capture继承而来; GroupCollection:表示捕获组的集合 Match: 一次表达式的匹配结果,由Group继承而来; MatchCollection: Match的一个序列; MatchEvaluator: 执行替换操作时使用的委托; Regex:编译后的表达式的实例。 RegexCompilationInfo:提供编译器用于将正则表达式编译为独立程序集的信息 RegexOptions 提供用于设置正则表达式的枚举值 [b]Regex类中还包含一些静态的方法: [/b] Escape: 对字符串中的regex中的转义符进行转义; IsMatch: 如果表达式在字符串中匹配,该方法返回一个布尔值; Match: 返回Match的实例; Matches: 返回一系列的Match的方法; Replace: 用替换字符串替换匹配的表达式; Split: 返回一系列由表达式决定的字符串; Unescape:不对字符串中的转义字符转义。 [b]PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:[/b] [b]JavaScript正则表达式在线测试工具: [/b][url=http://tools.jb51.net/regex/javascript]http://tools.jb51.net/regex/javascript[/url] [b]正则表达式在线生成工具: [/b][url=http://tools.jb51.net/regex/create_reg]http://tools.jb51.net/regex/create_reg[/url] 更多关于C#相关内容感兴趣的读者可查看本站专题:《[url=http://www.1sucai.cn/Special/344.htm]C#正则表达式用法总结[/url]》、《[url=http://www.1sucai.cn/Special/792.htm]C#编码操作技巧总结[/url]》、《[url=http://www.1sucai.cn/Special/266.htm]C#中XML文件操作技巧汇总[/url]》、《[url=http://www.1sucai.cn/Special/165.htm]C#常见控件用法教程[/url]》、《[url=http://www.1sucai.cn/Special/125.htm]WinForm控件用法总结[/url]》、《[url=http://www.1sucai.cn/Special/116.htm]C#数据结构与算法教程[/url]》、《[url=http://www.1sucai.cn/Special/478.htm]C#面向对象程序设计入门教程[/url]》及《[url=http://www.1sucai.cn/Special/227.htm]C#程序设计之线程使用技巧总结[/url]》 希望本文所述对大家C#程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部