正则表达式--定义

前言:在前端页面使用中,遇到日期格式的验证,开始使用了一款表单控件验证,但是不兼容!!而且使用起来还受到很大约束,所以就决定自己写原生js。为了完成日期格式的验证,第一步,当然是学会使用正则表达式。以前都是直接复制使用,这次理解原理,自己原生写。

首先,总结了正则表达式的定义。

正则表达式

 

正式定义:一个正则表达式可以是

□ 空字符串ε;

□ 单个字符;

□ 包含在括号中的另一个正则表达式;

□ 两个或多个连接起来的正则表达式;

□ 由或运算符分隔的两个或多个正则表达式;

□ 由闭包运算符标记的一个正则表达式。

这段定义藐视了正则表达式的语法,说明了怎样才是一个合法的正则表达式。在接下来对给定正则表达式的非形式化的描述是它的语义。作为总结,我们要继续在形式定义中对他们进行总结。

定义(续):每个正则表达式表示的是一个字符串的集合,他们的定义如下所述

□ 空正则表达式表示的字符串的集合为空,含有0个元素。

□ 一个字符表示表示的字符串的集合含有一个元素,即该字符本身。

□ 一个由括号和包含在其中的正则表达式组成的正则表达式表示的字符串的集合与括号内的正则表达式相同。

□ 由两个正则表达式连接起来的正则表达式的字符串的集合为这两个正则表达式分别表示的字符串集合的叉乘。(按照正则表达式中指定的顺序,由一个字符串集合中的元素和另一个字符串集合的元素相连接所能够组合而成的所有字符串。)

□ 由或运算符连接的两个正则表达式所表示的字符串的集合为两个正则表达式所分别表示的字符串集合的并集。

□ 由一个正则表达式的闭包所表示的字符串的集合由ε(空字符串)或将被修饰的正则表达式所表示的字符串集合重复任意次所得到的所有字符串所组成。

如有好的建议,可留言或发至笔者邮箱:[email protected]

时间: 2024-08-29 13:36:02

正则表达式--定义的相关文章

javascript正则表达式定义(语法)

javascript正则表达式定义(语法) 正则表达式的2种定义方法:一种是直接调用RegExp(),第二种是直接用字面量来定义,即var re = /正则规则/; 2种定义方法本质都是调用RegExp()方法 在调用同一段正则代码的时候,ECMAScript3和ECMAScript5中表现完全不一样 ? function reg(){ var re = /\sjavascript/; return re; } 分别在ECMAScript3和ECMAScript5中调用reg()方法多次 在EC

javascript正则表达式定义的方法是什么

javascript正则表达式的2种定义方法:一种是直接调用RegExp(),第二种是直接用字面量来定义,即var re = /正则规则/; js正则表达式的2种定义方法本质都是调用RegExp()方法 在调用同一段正则代码的时候,ECMAScript3和ECMAScript5中表现完全不一样 function reg(){ var re = /\sjavascript/; return re; } 分别在ECMAScript3和ECMAScript5中调用reg()方法多次 在ECMAScri

JavaScript正则表达式-定义

JavaScript定义正则表达式的方式有两种: 1.通过RegExp()构造函数创建RegExp对象来定义正则表达式. 2.通过字面语法直接定义正则表达式. 通过RegExp()构造函数创建RegExp对象来定义正则表达式 var reg_pattern = new RegExt("a\d"); 通过字面语法直接定义正则表达式 var reg_pattern = /a\d/;//模式匹配的字符串是:字母a后跟随一个任意的数字 //第2个斜线之后可以跟随后缀选项(标记)用以说明模式匹配

python成长之路第三篇(2)_正则表达式

打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.什么是正则表达式,python中得正则简介 2.re模块的内容 3.小练习 一.什么是正则表达式(re) 正则表达式相信很多人都熟悉了,在python中正则表达式的支持是通过re(regular expression)模块,正则表达式是可以匹配文本片段的模式,简单的是正则表达式就是普通的字符串,可以处理字符串.也就是说正则表达式的存在就是来处理文本字符串的 下面来熟悉下正则中的几个概念: 1.通配符 通配符是

python中的正则表达式

python的正则表达式在http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html中讲解的比较详细. 本文需要补充以下几个问题: 1.python正则表达式中的贪婪与非贪婪: python正则表达式默认是贪婪的,也就是说尽可能多的匹配.如果想让正则表达式变为不贪婪,可加限定符?. *?.+?.??.和{m,n}?,这样就尽可能小的匹配了. 2.正则表达式中的环视结构: 环视结构不匹配任何字符,只匹配文本中的特定位置. 类型 正则表达式

Java正则表达式教程及示例

本文由 ImportNew - ImportNew读者 翻译自 journaldev.欢迎加入翻译小组.转载请见文末要求. [感谢 @CuGBabyBeaR  的热心翻译.如果其他朋友也有不错的原创或译文,可以尝试投递到 ImportNew.] 当我开始我的Java职业生涯的时候,对于我来说正则表达式简直是个是梦魇.本教程旨在帮助你驾驭Java正则表达式,同时也帮助我复习正则表达式. 什么是正则表达式? 正则表达式定义了字符串的模式.正则表达式可以用来搜索.编辑或处理文本.正则表达式并不仅限于某

JS正则表达式大全(整理详细且实用)

JS正则表达式大全(整理详细且实用).需要的朋友可以过来参考下,希望对大家有所帮助!! 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界. -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*".

菜鸟的Linux之路1->egrep及其正则表达式

正则表达式(REGEXP:Regular Expression) 正则表达式分为两类: 1,基本的正则表达式.Basic REGEXP 2,扩展的正则表达式.Extened REGEXP 基本的正则表达式: 字符匹配 . 匹配任意单个字符 []:匹配指定范围内的任意单个字符 [^]:匹配指定范围外的任意单个字符 次数匹配 * 表示其前的字符匹配任意次 \? 表示其前的字符匹配0或者1次 \{m,n\} 表示匹配次数至少m次,至多n次,n可以省略表示没有匹配次数的上限 .* 表示匹配任意长度的任意

python之路 正则表达式,模块导入的方法,hashlib加密

一.正则表达式re python中re模块提供了正则表达式相关操作 字符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 次数: * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 模式 描述 ^ 匹配字符串的开头 $ 匹配字符串的末尾. . 匹配任意字符,除了换行符,当re.DO