Welcome 微信登录

首页 / 正则表达式

正则应用之 日期正则表达式

正则应用之 日期正则表达式

1概述 首先需要说明的一点,无论是Winform,还是Webform,都有很成熟的日历控件,无论从易用性还是可扩展性上看,日期的选择和校验还是用日历控件来实现比较好。 前几天在CSDN多个版块看到需要日期正则的帖子,所以整理了这篇文章,和大家一起讨论交流,如有遗漏或错误的地方,还请大家指正。 日期正则一般是对格式有要求,且数据不是直接由用户输入时使用。因应用场景的不同,写出的正则也不同,复杂程度也自然不同。正则的书写需要根据具体情况具体分析,一个基本原则就...
正则表达式 学习参考 推荐入门者看

正则表达式 学习参考 推荐入门者看

1 概述正则表达式(Regular Expression)是一种匹配模式,描述的是一串文本的特征。正如自然语言中“高大”、“坚固”等词语抽象出来描述事物特征一样,正则表达式就是字符的高度抽象,用来描述字符串的特征。正则表达式(以下简称正则,Regex)通常不独立存在,各种编程语言和工具作为宿主语言提供对正则的支持,并根据自身语言的特点,进行一定的剪裁或扩展。正则入门很容易,有限的语法规则很容易掌握,但是目前正则的普及率并不高,主要是因为正则的流派众多,各...
正则基础之  单词边界

正则基础之  单词边界

1概述 “”匹配单词边界,不匹配任何字符。 “”匹配的只是一个位置,这个位置的一侧是构成单词的字符,另一侧为非单词字符、字符串的开始或结束位置。“”是零宽度的。 基本上所有的资料里都会说“”是单词边界,但是关于“单词”的范围却是少有提及。通常情况下,正则表达式中所谓的“单词”,就是由“w”所定义的字符所组成的子串。 “”表示所在位置的一侧为单词字符,另一侧为非单词字符、字符串的开始或结束位置,也就相当于 (?<!w)(?=w)|(?<...
正则基础之 环视 Lookaround

正则基础之 环视 Lookaround

1 环视基础环视只进行子表达式的匹配,不占有字符,匹配到的内容不保存到最终的匹配结果,是零宽度的。环视匹配的最终结果就是一个位置。环视的作用相当于对所在位置加了一个附加条件,只有满足这个条件,环视子表达式才能匹配成功。环视按照方向划分有顺序和逆序两种,按照是否匹配有肯定和否定两种,组合起来就有四种环视。顺序环视相当于在当前位置右侧附加一个条件,而逆序环视相当于在当前位置左侧附加一个条件。表达式说明(?<=Expression)逆序肯定环视,表示所在...
正则基础之 NFA引擎匹配原理

正则基础之 NFA引擎匹配原理

1 为什么要了解引擎匹配原理一个个音符杂乱无章的组合在一起,弹奏出的或许就是噪音,同样的音符经过作曲家的手,就可以谱出非常动听的乐曲,一个演奏者同样可以照着乐谱奏出动听的乐曲,但他/她或许不知道该如何去改变音符的组合,使得乐曲更动听。作为正则的使用者也一样,不懂正则引擎原理的情况下,同样可以写出满足需求的正则,但是不知道原理,却很难写出高效且没有隐患的正则。所以对于经常使用正则,或是有兴趣深入学习正则的人,还是有必要了解一下正则引擎的匹配原理的。2 正则...
正则基础之 小数点

正则基础之 小数点

一些细节 对于使用传统NFA引擎的大多数语言和工具,如Java、.NET来说,“.”的匹配范围是匹配除了换行符“ ”以外的任意一个字符。 但是对于javascript来说有些特殊,由于各浏览器的解析引擎不同,“.”的匹配范围也有所不同,对于Trident内核的浏览器,如IE来说,“.”同样是匹配除了换行符“ ”以外的任意一个字符,但是对于其它内核的浏览器,如Firefox、Opera、Chrome来说,“.”是匹配除了回车符“ ”和换行符“ ”以外的任意一...
正则 捕获组(capture group)

正则 捕获组(capture group)

捕获组有两种形式一种是普通的捕获组,不产生歧义的情况下,后面简称捕获组,语法规则:(expression);另一种是命名捕获组,语法规则:(?<name>expression)或者(?"name"expression),这两种写法是等价的。1、编号规则如果没有显式为捕获组命名,即没有使用命名捕获组,那么需要按数字顺序来访问所有捕获组在只有普通捕获组的情况下,捕获组的编号是按照“(”出现的顺序,从左到右编号的(d{4})-(d{2}-(dd))1...
JavaScript 表单验证正则表达式大全[推荐]

JavaScript 表单验证正则表达式大全[推荐]

具体和函数结合的使用方法,还请查看下篇文章 JavaScript 使用正则表达式进行表单验证的示例代码复制代码 代码如下:匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:&l...
正则表达式匹配任意字符(包括换行符)的写法

正则表达式匹配任意字符(包括换行符)的写法

今天在Java中想使用正则表达式来获取一段文本中的任意字符。于是很随意得就写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本。于是查了一下手册,才发现正则表达式中,“.”(点符号)匹配的是除了换行符“ ”以外的所有字符。同时,手册上还有一句话:要匹配包括 " " 在内的任何字符,请使用像 "[. ]" 的模式。于是我将正则表达式的匹配规则修改如下: ([. ]*),当然,如果是在java程序中直接写到话,需要改为([.\n]*) 结果...
python 正则表达式 反斜杠(/)的麻烦和陷阱

python 正则表达式 反斜杠(/)的麻烦和陷阱

要匹配字符串中1个反斜杠应该怎么写正则表达式?"\",这样行吗?试试就知道了,re模块抛异常了,因为"\"就是一个反斜杠,对于正则表达式解析器来说,是一个转义字符,但是后面啥也没有,自然就报错了,"\"三个肯定是不行的,试试四个"\\",完美匹配。 复制代码 代码如下: import re re_str_patt = "\\" reObj = re.compile(re_str_patt) str_test = "abc\cd\hh" print reOb...
匹配中文的正则(GB2312/utf-8)

匹配中文的正则(GB2312/utf-8)

i (PCRE_CASELESS) 如果设定此修正符,模式中的字符将同时匹配大小写字母。 m(PCRE_MULTILINE) 默认情况下,PCRE 将目标字符串作为单一的一“行”字符所组成的(甚至其中包含有换行符也是如此)。“行起始”元字符(^)仅仅匹配字符串的起始,“行结束”元字符($)仅仅匹配字符串的结束,或者最后一个字符是换行符时其前面(除非设定了 D 修正符)。这和 Perl 是一样的。 当设定了此修正符,“行起始”和“行结束”除了匹配整个字符串开...
JavaScript 实现基础 正则表达式

JavaScript 实现基础 正则表达式

JavaScript通过RegExp类来支持正则表达式,举一个最简单的例子: 复制代码 代码如下:var regApple = new RegExp("apple"); 它可以匹配一个字符串中出现的第一个"apple"字符串,并且对大小写敏感。在构造方法中加入第二个参数"g"则代表的搜索出字符串中所有的 "apple",这里"g"代表"global"。如果第二个参数为"i",则代表着case-insensitive,匹配过程中将不考虑字母的大小写。将上述两...
<< 51 52 53 54 55 56 57 58 59 60 >>