Regex 相关
kingdom_0
一句话简介.
展开
-
正则基础之——小数点
<br />小数点可以匹配除了换行符“/n”以外的任意一个字符<br /> <br />一些细节<br />对于使用传统NFA引擎的大多数语言,如Java,.NET来说,“.”的匹配范围是这样的。 <br />但是对于JavaScript来说有些特殊,由于各浏览器的解析引擎不同,“.”的匹配范围也有所不同,对于Trident内核的浏览器,如IE来说,“.”同样是匹配除了换行符“/n”以外的任意一个字符,但是对于其它内核的浏览器,如Firefox转载 2011-05-21 13:18:00 · 402 阅读 · 0 评论 -
正则基础之——正则委托
1 概述<br />一般的正则替换,只能对匹配的子串做简单的处理,且只能是做string类型的处理之后,作为替换文本替换匹配子串,可以实现的功能比较有限。.NET的Replace()方法中的replacement参数,不仅可以是字符串,还可以是委托(delegate),在每次匹配成功时,都会调用委托方法,对匹配的子串进行处理之后,再作为替换文本返回,匹配子串使用委托方法,可以做任意复杂的处理,因此这种替换功能非常强大。<br />委托的类型可以是MatchEvaluator,也可以是匿名方法,转载 2011-05-24 16:55:00 · 550 阅读 · 0 评论 -
正则基础之——小数点
1 概述平衡组是微软在.NET中提出的一个概念,主要是结合几种正则语法规则,提供对配对出现的嵌套结构的匹配。.NET是目前对正则支持最完备、功能最强大的语言平台之一,而平衡组正是其强大功能的外在表现,也是比较实用的文本处理功能,目前只有.NET支持,相信后续其它语言会提供支持。平衡组可以有狭义和广义两种定义,狭义平衡组指.NET中定义的(?Expression)语法,广义平衡组并不是固定的语法规则,而是几种语法规则的综合运用,我们平时所说的平衡组通常指的是广义平衡组。本文中如无特殊说明,平衡组转载 2011-05-24 16:52:00 · 527 阅读 · 0 评论 -
正则基础之——平衡组
1 概述<br />平衡组是微软在.NET中提出的一个概念,主要是结合几种正则语法规则,提供对配对出现的嵌套结构的匹配。.NET是目前对正则支持最完备、功能最强大的语言平台之一,而平衡组正是其强大功能的外在表现,也是比较实用的文本处理功能,目前只有.NET支持,相信后续其它语言会提供支持。<br />平衡组可以有狭义和广义两种定义,狭义平衡组指.NET中定义的(?<Close-Open>Expression)语法,广义平衡组并不是固定的语法规则,而是几种语法规则的综合运用,我们平时所说的平衡组转载 2011-05-24 15:18:00 · 1002 阅读 · 0 评论 -
正则基础之——反向引用
1 概述<br />捕获组捕获到的内容,不仅可以在正则表达式外部通过程序进行引用,也可以在正则表达式内部进行引用,这种引用方式就是反向引用。要了解反向引用,首先要了解捕获组,关于捕获组,参考正则基础之——捕获组(capture group)。<br />反向引用的作用通常是用来查找或限定重复、查找或限定指定标识配对出现等等。<br />对于普通捕获组和命名捕获组的引用,语法如下:<br />普通捕获组反向引用:/k<number>,通常简写为/number<br />命名捕获组反向引用:/k<转载 2011-05-24 11:28:00 · 510 阅读 · 0 评论 -
正则基础之——【】字符组
<br />[]能够匹配所包含的一系列字符中的任意一个。需要注意的是,[]虽然能匹配其中的任意一个字符,但匹配的结果只能是一个字符,不是多个。<br /> 例如[abc]表示字符“a”或“b”或“c”。<br /> <br /> []支持用连字符“-”连接两个字符,来表示一个字符范围。需要注意的是,“-”前后的两个字符是有顺序的,即使用相同的编码时,后面的字符码位应大于或等于前面字符的码位。<br /> 例如[a-z]表示任意一个小写字母。而在程序中使用[z-a]则会报“[x-y] 范围的转载 2011-05-24 17:08:00 · 941 阅读 · 6 评论 -
正则基础之——逆序环视深入
说明:部分内容有待进一步研究和修正,因为最近工作太忙,暂时抽不出时间来,未研究过的可以跳过这一篇,想研究的不要被我的思路所左右了,有研究清楚的还请指正1 问题引出<br />前几天在CSDN论坛遇到这样一个问题:<br />var str="8912341253789"; <br />需要将这个字符串中的重复的数字给去掉,也就是结果89123457。<br />首先需要说明的是,这种需求并不适合用正则来实现,至少,正则不是最好的实现方式。<br />这个问题本身不是本文讨论的重点,本文所要转载 2011-05-23 15:09:00 · 527 阅读 · 0 评论 -
正则应用之——逆序环视探索
1 问题引出<br />前几天在CSDN论坛遇到这样一个问题。<br />我要通过正则分别取出下面 <font color="#008000"> 与 </font> 之间的字符串<br />1、在 <font color="#008000"> 与 </font> 之间的字符串是没法固定的,是随机自动生成的<br />2、其中 <font color="#008000"> 与 </font>的数量也是没法固定的,也是随机自动生成的<br /><font color="#008000"> ** 这转载 2011-05-23 13:01:00 · 525 阅读 · 1 评论 -
正则表达式学习参考
<br />正则表达式学习参考1 概述<br />正则表达式(Regular Expression)是一种匹配模式,描述的是一串文本的特征。<br />正如自然语言中“高大”、“坚固”等词语抽象出来描述事物特征一样,正则表达式就是字符的高度抽象,用来描述字符串的特征。<br />正则表达式(以下简称正则,Regex)通常不独立存在,各种编程语言和工具作为宿主语言提供对正则的支持,并根据自身语言的特点,进行一定的剪裁或扩展。<br />正则入门很容易,有限的语法规则很容易掌握,但是目前正则的普及率转载 2011-05-21 09:39:00 · 461 阅读 · 0 评论 -
正则基础之——贪婪与非贪婪模式
1 概述<br />贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配。非贪婪模式只被部分NFA引擎所支持。<br />属于贪婪模式的量词,也叫做匹配优先量词,包括:<br />“{m,n}”、“{m,}”、“?”、“*”和“+”。<br />在一些使用NFA引擎的语言中,在匹配优先量词后加上“?”,即变成属于非贪婪模式的量词,也叫做忽略优先量词,包括:<br />“{m,n}?转载 2011-05-23 10:53:00 · 547 阅读 · 0 评论 -
正则应用之--日期正则表达式
1 概述<br />首先需要说明的一点,无论是Winform,还是Webform,都有很成熟的日历控件,无论从易用性还是可扩展性上看,日期的选择和校验还是用日历控件来实现比较好。<br />前几天在CSDN多个版块看到需要日期正则的帖子,所以整理了这篇文章,和大家一起讨论交流,如有遗漏或错误的地方,还请大家指正。<br />日期正则一般是对格式有要求,且数据不是直接由用户输入时使用。因应用场景的不同,写出的正则也不同,复杂程度也自然不同。正则的书写需要根据具体情况具体分析,一个基本原则就是:只原创 2011-05-21 14:53:00 · 653 阅读 · 3 评论 -
正则基础之——NFA引擎匹配原理
<br />NFA引擎匹配原理1 为什么要了解引擎匹配原理<br />一个个音符杂乱无章的组合在一起,弹奏出的或许就是噪音,同样的音符经过作曲家的手,就可以谱出非常动听的乐曲,一个演奏者同样可以照着乐谱奏出动听的乐曲,但他/她或许不知道该如何去改变音符的组合,使得乐曲更动听。<br />作为正则的使用者也一样,不懂正则引擎原理的情况下,同样可以写出满足需求的正则,但是不知道原理,却很难写出高效且没有隐患的正则。所以对于经常使用正则,或是有兴趣深入学习正则的人,还是有必要了解一下正则引擎的匹配原创 2011-05-21 13:42:00 · 409 阅读 · 0 评论 -
正则基础之--/b单词边界
<br />1 概述“/b”匹配单词边界,不匹配任何字符。“/b”匹配的只是一个位置,这个位置的一侧是构成单词的字符,另一侧为非单词字符、字符串的开始或结束位置。“/b”是零宽度的。基本上所有的资料里都会说“/b”是单词边界,但是关于“单词”的范围却是少有提及。通常情况下,正则表达式中所谓的“单词”,就是由“/w”所定义的字符所组成的子串。“/b”表示所在位置的一侧为单词字符,另一侧为非单词字符、字符串的开始或结束位置,也就相当于(?<br />/*-------- J转载 2011-05-21 14:34:00 · 585 阅读 · 0 评论 -
正则基础之——环视
<br />环视(Lookaround)1 环视基础<br />环视只进行子表达式的匹配,不占有字符,匹配到的内容不保存到最终的匹配结果,是零宽度的。环视匹配的最终结果就是一个位置。<br />环视的作用相当于对所在位置加了一个附加条件,只有满足这个条件,环视子表达式才能匹配成功。<br />环视按照方向划分有顺序和逆序两种,按照是否匹配有肯定和否定两种,组合起来就有四种环视。顺序环视相当于在当前位置右侧附加一个条件,而逆序环视相当于在当前位置左侧附加一个条件。<br />表达式<br />说明转载 2011-05-21 14:11:00 · 431 阅读 · 0 评论 -
正则基础之——小数点
小数点可以匹配除了换行符“/n”以外的任意一个字符 一些细节对于使用传统NFA引擎的大多数语言,如Java,.NET来说,“.”的匹配范围是这样的。 但是对于JavaScript来说有些特殊,由于各浏览器的解析引擎不同,“.转载 2011-06-08 16:35:00 · 543 阅读 · 0 评论