正则
xuedongabc
这个作者很懒,什么都没留下…
展开
-
正则判断一个字符串里是否包含一些词
今天项目里用到了正则,判断一个字符串里是不是包含这些词,词出现的顺序不管,但必须出现。搞了半天没搞出来,后来找了个高人,给搞出来了,但由于资质不够,还是不太理解。大家有谁明白其中道理的希望能告下。需求如下,判断aabbcc中是否包含aa,cc这两个词。代码如下: String s="bbccaa"; String reg="(?=.*aa)(?=.*c...2011-08-16 16:53:12 · 2815 阅读 · 1 评论 -
正则应用之——日期正则表达式
1 概述首先需要说明的一点,无论是Winform,还是Webform,都有很成熟的日历控件,无论从易用性还是可扩展性上看,日期的选择和校验还是用日历控件来实现比较好。前几天在CSDN多个版块看到需要日期正则的帖子,所以整理了这篇文章,和大家一起讨论交流,如有遗漏或错误的地方,还请大家指正。日期正则一般是对格式有要求,且数据不是直接由用户输入时使用。因应用场景的不同,写...原创 2011-07-06 17:18:55 · 76 阅读 · 0 评论 -
正则基础之——/b 单词边界 .
1 概述“/b”匹配单词边界,不匹配任何字符。“/b”匹配的只是一个位置,这个位置的一侧是构成单词的字符,另一侧为非单词字符、字符串的开始或结束位置。“/b”是零宽度的。基本上所有的资料里都会说“/b”是单词边界,但是关于“单词”的范围却是少有提及。通常情况下,正则表达式中所谓的“单词”,就是由“/w”所定义的字符所组成的子串。“/b”表示所在位置的一侧为单词字符...原创 2011-07-06 17:20:07 · 107 阅读 · 0 评论 -
正则基础之——环视 .
环视只进行子表达式的匹配,不占有字符,匹配到的内容不保存到最终的匹配结果,是零宽度的。环视匹配的最终结果就是一个位置。环视的作用相当于对所在位置加了一个附加条件,只有满足这个条件,环视子表达式才能匹配成功。环视按照方向划分有顺序和逆序两种,按照是否匹配有肯定和否定两种,组合起来就有四种环视。顺序环视相当于在当前位置右侧附加一个条件,而逆序环视相当于在当前位置左侧附加一个条件。表...原创 2011-07-06 17:21:31 · 78 阅读 · 0 评论 -
正则基础之——NFA引擎匹配原理 .
NFA引擎匹配原理1 为什么要了解引擎匹配原理 一个个音符杂乱无章的组合在一起,弹奏出的或许就是噪音,同样的音符经过作曲家的手,就可以谱出非常动听的乐曲,一个演奏者同样可以照着乐谱奏出动听的乐曲,但他/她或许不知道该如何去改变音符的组合,使得乐曲更动听。作为正则的使用者也一样,不懂正则引擎原理的情况下,同样可以写出满足需求的正则,但是不知道原理,却很难写出高效且没有隐患的正...原创 2011-07-06 17:22:21 · 82 阅读 · 0 评论 -
正则基础之——小数点 .
小数点可以匹配除了换行符“/n”以外的任意一个字符 一些细节对于使用传统NFA引擎的大多数语言,如Java,.NET来说,“.”的匹配范围是这样的。 但是对于JavaScript来说有些特殊,由于各浏览器的解析引擎不同,“.”的匹配范围也有所不同,对于Trident内核的浏览器,如IE来说,“.”同样是匹配除了换行符“/n”以外的任意一个字符,但是对于其它内核的浏览器,如Firef...原创 2011-07-06 17:23:21 · 92 阅读 · 0 评论 -
正则表达式学习参考
正则表达式学习参考1 概述正则表达式(Regular Expression)是一种匹配模式,描述的是一串文本的特征。正如自然语言中“高大”、“坚固”等词语抽象出来描述事物特征一样,正则表达式就是字符的高度抽象,用来描述字符串的特征。正则表达式(以下简称正则,Regex)通常不独立存在,各种编程语言和工具作为宿主语言提供对正则的支持,并根据自身语言的特点,进行一定的剪...原创 2011-07-06 17:28:19 · 57 阅读 · 0 评论 -
正则基础之——捕获组(capture group) .
1 概述 1.1 什么是捕获组 捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用。当然,这种引用既可以是在正则表达式内部,也可以是在正则表达式外部。 捕获组有两种形式,一种是普通捕获组,另一种是命名捕获组,通常所说的捕获组指的是普通捕获组。语法如下:普通捕获组:(Expression)命名捕获组:(?&l...原创 2011-07-06 17:30:41 · 62 阅读 · 0 评论 -
[ ] 字符组(Character Classes) .
[]能够匹配所包含的一系列字符中的任意一个。需要注意的是,[]虽然能匹配其中的任意一个字符,但匹配的结果只能是一个字符,不是多个。 例如[abc]表示字符“a”或“b”或“c”。 []支持用连字符“-”连接两个字符,来表示一个字符范围。需要注意的是,“-”前后的两个字符是有顺序的,即使用相同的编码时,后面的字符码位应大于或等于前面字符的码位。 例如[a-z]表...原创 2011-07-06 17:31:48 · 84 阅读 · 0 评论 -
正则手册
给大家共享个正则手册 欢迎查看本人博客:www.java.hourb.com原创 2011-07-07 16:53:04 · 58 阅读 · 0 评论 -
js取当前url参数
js没有提供取当前url参数的方法,只能是自己从中截取了,在网上看很多都是split成数组后再匹配。后来找了个用正则写的,感觉很方便就收藏,方便日后使用。现在分享给大家。Request = {QueryString : function( key ){ var svalue = window.location.search.match( new RegExp( "[\?\&]" ...2011-07-19 11:14:17 · 57 阅读 · 0 评论 -
.NET正则基础之——.NET正则匹配模式 .
1 概述 匹配模式指的是一些可以改变正则表达式匹配行为的选项或修饰符。不同的语言支持的匹配模式不同,使用的方式也不同。一般可分为全局和内联两种。下面主要介绍.NET中的匹配模式,其它语言的匹配模式,后续视情况补充。2 匹配模式 2.1 全局匹配模式和内联匹配模式概述 .NET中的全局匹配模式是通过RegexOptions 枚举值指定的,...原创 2011-07-06 17:16:56 · 95 阅读 · 0 评论 -
.NET正则基础之——平衡组 .
1 概述平衡组是微软在.NET中提出的一个概念,主要是结合几种正则语法规则,提供对配对出现的嵌套结构的匹配。.NET是目前对正则支持最完备、功能最强大的语言平台之一,而平衡组正是其强大功能的外在表现,也是比较实用的文本处理功能,目前只有.NET支持,相信后续其它语言会提供支持。平衡组可以有狭义和广义两种定义,狭义平衡组指.NET中定义的(?<Close-Open&g...原创 2011-07-06 17:14:16 · 70 阅读 · 0 评论 -
正则表达式常用验证
在前台很多地方需要验证输入格式,为了方便以后使用,把常用的整理下放到这里,方便以后使用。都是经过测试的,大家可以放心使用。由于今天有事,只试了两个。所以这里先放两个,等测试完后,再往上添加。呵呵。顺便说下,如果大家发现有问题,希望能提出来,大家共同进步 /**验证用户名,必须是由字母数字,下划线组成,6到20位*/function validateName(name){ ...2011-08-24 12:20:12 · 56 阅读 · 0 评论 -
正则表达式从入门到精通 .
什么是正则表达式 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。 请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 'data?.dat' 的模式可以找到下述文件: data1.dat data2.dat datax....原创 2011-07-05 14:52:42 · 79 阅读 · 0 评论 -
正则基础之——神奇的转义
1 概述 这或许会是一个让人迷惑,甚至感到混乱的话题,但也正因为如此,才有了讨论的必要。在正则中,一些具有特殊意义的字符,或是字符序列,被称作元字符,如“?”表示被修饰的子表达式匹配0次或1次,“(?i)”表示忽略大小写的匹配模式等等。而当这些元字符被要求匹配其本身时,就要进行转义处理了。不同的语言或应用场景下,正则定义方式、元字符出现的位置不同,转义的方式也是林...原创 2011-07-06 16:54:23 · 72 阅读 · 0 评论 -
正则匹配原理之——逆序环视深入
说明:部分内容有待进一步研究和修正,因为最近工作太忙,暂时抽不出时间来,未研究过的可以跳过这一篇,想研究的不要被我的思路所左右了,有研究清楚的还请指正1 问题引出 前几天在CSDN论坛遇到这样一个问题:var str="8912341253789"; 需要将这个字符串中的重复的数字给去掉,也就是结果89123457。首先需要说明的是,这种需求并不适合用正则来...原创 2011-07-06 16:59:03 · 98 阅读 · 0 评论 -
正则应用之——逆序环视探索
1 问题引出 前几天在CSDN论坛遇到这样一个问题。我要通过正则分别取出下面 <font color="#008000"> 与 </font> 之间的字符串 1、在 <font color="#008000"> 与 </font> 之间的字符串是没法固定的,是随机自动生成的 2、其中 <font color=&q原创 2011-07-06 17:01:25 · 67 阅读 · 0 评论 -
正则基础之——贪婪与非贪婪模式 .
1 概述 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配。非贪婪模式只被部分NFA引擎所支持。属于贪婪模式的量词,也叫做匹配优先量词,包括:“{m,n}”、“{m,}”、“?”、“*”和“+”。在一些使用NFA引擎的语言中,在匹配优先量词后加上“?”...原创 2011-07-06 17:03:34 · 74 阅读 · 0 评论 -
NET正则基础之——正则委托 .
1 概述 一般的正则替换,只能对匹配的子串做简单的处理,且只能是做string类型的处理之后,作为替换文本替换匹配子串,可以实现的功能比较有限。.NET的Replace()方法中的replacement参数,不仅可以是字符串,还可以是委托(delegate),在每次匹配成功时,都会调用委托方法,对匹配的子串进行处理之后,再作为替换文本返回,匹配子串使用委托方法,可以做任意复杂的处...原创 2011-07-06 17:05:59 · 66 阅读 · 0 评论 -
.NET正则基础——.NET正则类及方法应用 .
1 概述 初学正则时,对于Regex类不熟悉,遇到问题不知道该用哪种方法解决,本文结合一些正则应用的典型应用场景,介绍一下Regex类的基本应用。这里重点进行.NET类的介绍,对于正则的运用,不做深入探讨。正则的应用最终都是进行模式的匹配,而根据目的的不同,基本上可以分为以下几种应用:验证、提取、替换、分割。结合.NET提供的控件、类以及类的方法,可以很方便的实现这些应用。...原创 2011-07-06 17:07:24 · 71 阅读 · 0 评论 -
正则基础之——反向引用 .
1 概述 捕获组捕获到的内容,不仅可以在正则表达式外部通过程序进行引用,也可以在正则表达式内部进行引用,这种引用方式就是反向引用。要了解反向引用,首先要了解捕获组,关于捕获组,参考 正则基础之——捕获组(capture group)。反向引用的作用通常是用来查找或限定重复、查找或限定指定标识配对出现等等。对于普通捕获组和命名捕获组的引用,语法如下:普通捕获组反向引...原创 2011-07-06 17:09:20 · 151 阅读 · 0 评论 -
正则基础之——非捕获组 .
非捕获组:(?:Expression)接触正则表达式不久的人,通常都会对非捕获比较迷惑,为什么要有非捕获组?作用是什么?应该在什么场景下使用?说到非捕获组,首先要了解什么是捕获组,详细内容参考 正则基础之——捕获组(capture group)。 1、为什么要有非捕获组一旦使用了“()”,就会默认为是普通捕获组,从而将“()”内表达式匹配的内容捕获到组里。但是有些情况下,不得不用“...原创 2011-07-06 17:10:14 · 69 阅读 · 0 评论 -
(从网上考过来的,收藏) javascript 正则表达式的贪婪与非贪婪
以下内容转自:http://www.cnitblog.com/yemoo/archive/2009/01/09/12675.html以前看正则表达式,但没有注意到正则表达式的贪婪与非贪婪模式,今天在经典上看到了这么段代码:<script>try{str="<p>abcdefg</p><p>abcdefghijkl</p>";re1=st...原创 2012-10-08 10:35:46 · 102 阅读 · 0 评论