代码改变世界

随笔分类 -  正则表达式

预搜索基本概念案例分析

2012-03-31 14:17 by Andy Ge, 243 阅读, 收藏,
摘要: stringx="used:10246free:20489";Regexr=newRegex(@"(?<!used:)\d{4}");Console.WriteLine();Console.WriteLine("string:{0}\npatten:{1}",x,r);//第一次匹配“sed:10246",其中反向负声明匹配为:”sed:1",后面的数字为匹配返回结果//第二次匹配"free:2048",其中反向负声明匹配为:”free:",后面的数字为匹配返回结果//包含两个匹 阅读全文

预搜索经典案例分析

2012-03-31 14:06 by Andy Ge, 303 阅读, 收藏,
摘要: C# codestring str ="aaa bbbb ffffff 999999999";Regex r = new Regex(@"(\w)((?=\1\1\1)(\1))+"); foreach (Match m in r.Matches(str)) { Console.WriteLine("Match:Value={0},Index={1},Length={2}", m.Value, m.Index, m.Length); }结果如下:Match:Value=bb,Index=4,Length=2Match:Va... 阅读全文

正向预搜索和反向预搜索的学习

2012-03-31 10:55 by Andy Ge, 424 阅读, 收藏,
摘要: 在看正则的时候中碰到一个这样的正则问题.将 一句SQL语句中的“select”和“from” 之间的字符替换为 “count(*)”问题很简单,我的答案是代 码:<?php$sql = "select uid,sas,fd from asdf";echo preg_replace("/select(.+?)from/i",'select count(*) from',$sql);?>但是看了别人的答案却十分的简单代码:echo preg_replace("/(?<=select).+?(?=from)/i&qu 阅读全文

正则表达式中的反向预搜索和正向预搜索的使用方法

2012-03-31 07:21 by Andy Ge, 888 阅读, 收藏,
摘要: 表达式方向说明(?=xxx)正向预搜索(向右)正向预搜索,判断当前位置右侧是否能匹配指定表达式(?!xxx)正向预搜索否定,判断当前位置右侧是否不能够匹配指定表达式(?<=xxx)反向预搜索(向左)反向预搜索,判断当前位置左侧是否能够匹配指定表达式(?<!xxx)反向预搜索否定,判断当前位置左侧是否不能够匹配指定表达式预搜索分两种,一种是向右,另外一种是向左,以下是各个表达式在.net中的使用例子:1.向右肯定搜索:string rega = @"(?=[^1-9]\d+)";string test="1t2t5";MatchCollecti 阅读全文

C#正则表达式整理备忘

2012-03-30 08:59 by Andy Ge, 239 阅读, 收藏,
摘要: 有一段时间,正则表达式学习很火热很潮流,当时在CSDN一天就能看到好几个正则表达式的帖子,那段时间借助论坛以及Wrox Press出版的《C#字符串和正则表达式参考手册》学习了一些基础的知识,同时也为我在CSDN大概赚了1000分,今天想起来,去找《C#字符串和正则表达式参考手册》时,已经不知所踪了。现在用到正则的时候也比较少,把以前的笔记等整理一下,以志不忘。(1)“@”符号符下两ows表研究室的火热,当晨在“@”虽然并非C#正则表达式的“成员”,但是它经常与C#正则表达式出双入对。“@”表示,跟在它后面的字符串是个“逐字字符串”,不是很好理解,举个例子,以下两个声明是等效的:string 阅读全文

C#正则表达式编程(一):C#中有关正则的类 .

2012-03-30 07:50 by Andy Ge, 292 阅读, 收藏,
摘要: 正则表达式是一门灵活性非常强的语言,匹配同样的字符串可能在不同的开发人员那里会得到不同的结果,在平常的时候也是用的时候看看相关资料,不用的时候就丢在脑后了,尽管在处理大部分情况下都能迅速处理,但是处理一些复杂的情况效率仍是不高,借着前阵子做过的一个项目涉及到正则表达式的机会,将有关资料阅读了一遍并结合了自己的体会,整理了几篇利用 C# 进行正则表达式编程的文章,一来加深自己的印象和理解,二来供博客上的读者学习借鉴。 在 .NET 中提供了对正则表达式的支持,并且提供了相关的类,分别有: Regex 、 Match 、 Group 、 Capture 、 RegexOptions 、 Match 阅读全文

C#正则表达式编程(二):Regex类用法 .

2012-03-30 07:42 by Andy Ge, 417 阅读, 收藏,
摘要: 上一篇讲述了在C#中有关正则表达式的类之间的关系,以及它们的方法,这一篇主要是将Regex这个类的用法的,关于Match及MatchCollection类会在下一篇讲到。对于正则表达式的应用,基本上可以分为验证、提取、分割和替换。仅仅利用Regex类就可以实现验证和简单替换。利用Regex类实现验证经历2009年的备案和DNS停止解析风波之后,大部分的带有反馈性的网站和论坛都对一些敏感词进行了过滤,包含有这类敏感词的文章要么内容被替换要么被禁止发表,利用Regex类就可以实现这个功能,下面是一个例子:[c-sharp] view plaincopyprint?///<summary> 阅读全文

C#正则表达式编程(三):Match类和Group类用法 .

2012-03-30 07:41 by Andy Ge, 380 阅读, 收藏,
摘要: 前面两篇讲述了正则表达式的基础和一些简单的例子,这篇将稍微深入一点探讨一下正则表达式分组,在.NET中正则表达式分组是用Match类来代表的。首先先看一段代码:[c-sharp] view plaincopyprint?///<summary> ///显示Match内多个Group的例子 ///</summary> publicvoidShowStructure(){//要匹配的字符串 stringtext="1A2B3C4D5E6F7G8H9I10J11Q12J13K14L15M16Nffee80#800080";//正则表达式 stringpat 阅读全文

c#正则表达式分组取值

2012-03-30 06:54 by Andy Ge, 468 阅读, 收藏,
摘要: 就速度而言,当然是正则表达式最快,最高效了,下面谈谈如何用正则表达式分组来实现采集 先分析下正则取值相比非正则取值来说,他的优势在哪 这次的例子稍微弄复杂点 <tr> <td class="odd"><a href="/files/article/info/96/96231.htm">地皇传说</a></td> <td class="even"><a href="/files/article/html/96/96231/index.shtml&qu 阅读全文

C#中利用正则表达式实现字符串搜索

2012-03-30 06:54 by Andy Ge, 263 阅读, 收藏,
摘要: 摘要:本文给出了在C#下利用正则表达式实现字符串搜索功能的方法,通过对.NET框架下的正则表达式的研究及实例分析,总结了正则表达式的元字符、规则、选项等。 关键字:正则表达式、元字符、字符串、匹配 1、正则表达式简介 正则表达式提供了功能强大、灵活而又高效的方法来处理文本。正则表达式的全面模式匹配表示法可以快速地分析大量的文本以找到特定的字符模式;提取、编辑、替换或删除文本子字符串;或将提取的字符串添加到集合以生成报告。对于处理字符串(例如 HTML 处理、日志文件分析和 HTTP 标头分析)的许多应用程序而言,正则表达式是不可缺少的工具。 .NET 框架正则表达式并入了其他正则表... 阅读全文