正则表达式知识详解.docx
《正则表达式知识详解.docx》由会员分享,可在线阅读,更多相关《正则表达式知识详解.docx(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、什么是正则表达式?1 .定义:正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否 含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。构造正则表 达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结 合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、 字符间的选择或者所有这些组件的任意组合。2 .组成:正则表达式是由普通字符(例如字符a到z )以及特殊字符(称为“元字符)组成的文字 模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将
2、某个 字符模式与所搜索的字符串进行匹配。3 .何时使用:验证从头到尾完整匹配!查找只要部分匹配即可!二、正则表达式的基本语法和规则1.备选字符集:规定某*一位字符*可用的备选字符的集合语法可选字符列表懒惰模式:正则表达式仅匹配最小的符合规则的字符串比如:筛选网页中的a元素: 懒惰模式:.*?例如:您可能搜索HTML文档,以查找括在H1标记内的章节标题。该文本在您的文档中如下: Chapter 1 - Introduction to Regular Expression下面的表达式匹配从开始小于符号()之间的所有内容。/如果您只需要匹配开始H1标记,下面的“非贪心”表达式只匹配。/通过在*、+或
3、?限定符之后放置?,该表达式从“贪心表达式转换为“非贪心”表达式或 者最小匹配。三、常用正则表达式示例及说明:1 .正则表达式验证控制文本框的输入字符类型1)只能输入数字和英文的:2)只能输入数字的:3)只能输入全角的:4)只能输入汉字的:2 .正则表达式的应用实例通俗说明*校验是否全由数字组成/A0-9l,20$/A表示打头的字符要匹配紧跟人后面的规则$表示打头的字符要匹配紧靠$前面的规则中的内容是可选字符集0-9表示要求字符范围在0-9之间1,20表示数字字符串长度合法为1到20 ,即为0-9中的字符出现次数的范围是1到20 次。r和$/成对使用应该是表示要求整个字符串完全匹配定义的规则,
4、而不是只匹配字符串 中的一个子串。*校验登录名:只能输入5-20个以字母开头、可带数字、的字串/Aa-zA-Zl(a-zA-Z0-9|J)4,19)$/Aa-zA-Zl表示第一个字符要求是字母。(a-zA-Z0-9|J)4,19表示从第二位开始(因为它紧跟在上个表达式后面)的一个长度 为4到9位的字符串,它要求是由大小写字母、数字或者特殊字符集.组成。*校验用户姓名:只能输入1-30个以字母开头的字串/Aa-zA-Zl,30$/*校验密码:只能输入6-20个字母、数字、下划线/人(w)6,20$/w :用于匹配字母,数字或下划线字符*校验普通电话、传真号码:可以+或数字开头,可含有-和 /A+
5、0,l(d)l/3 ?(H?(d)| )lJ2)+$/d :用于匹配从0到9的数字;元字符规定其前导对象必须在目标对象中连续出现零次或一次可以匹配的字符串如:+123 -999 999 ; +123-999 999 ; 123 999 999 ; +123 999999等*校验URL/AhttpsO,l:W.+$/ 或 /AhttpsO,l:W.l,n$/ (表示 url 串的 长度为 length( Hhttps:/ ) + n )/ :表示字符7。.表示所有字符的集+等同于L,就是1到正无穷吧。*三、RegExp对象和方法在Javascript中,通过RegExp对象来支持正则表达式。创建
6、正则表达式的方式有两种:1) .最简单的创建正则表达式的方法:字面量形式Var expression=/pattern/flags其中pattern部分可以使任何简单的正则表达式Flags表示正则表达式的标志,正则表达式的匹配模式支持3个标志:1) g:表示全局(globle )模式,即模式被应用于所有字符串,而非在发现第一个匹配项 是立即停止。2) i:表示不区分大小写模式,即在确定匹配项是忽略模式于字符串的大小写。3) m:表示多行模式,即在到达一行文本末尾是还会继续查找下一行中是否存在与模式 匹配的项。例如:/*匹配字符串中所有at的实例*/Var paaternl=/at/g;/*匹配
7、第一个 batz/或 cat”,不区分大小写*/Var paatern2=/bcat/i;/*匹配所有以at结尾的3个字符串的组合,不区分大小写*/Var paatern2=/.at/gi;2 .使用RegExp构造函数创建正则表达式Var expression=new Regexp( nbcat,/ );其中传给RegExp构造函数的两个参数都是字符串(不能把正则表达式的字面量传递给 RegExp构造函数),也因此,在某些情况下要对字符进行双重转义。所有的元字符都必须进行 双重转义。例如:字面量模式:Abcat/ A.at/nameVage/ Ad.dl,2/ Awhello123/等价的字
8、符串形式:bcatnameVage,zd.dL2whello123”注意:使用正则表达式字面量和使用RegExp构造函数创建的正则表达式不一样,正则表 达式字面量始终会共享同一个RegExp实例,而构造函数创建的每一个新RegExp实例都是一 个新实例(动态创建的)。3 .Exec()查找方法Exec()接受一个参数,即要应用模式的字符串,然后返回包含第一个匹配项的信息的数组, 如果没有找到则返回nullo返回的数组包含两个属性:index和input, index表示匹配项在字 符串中的位置,input表示应用正则表达式的字符串。对于exec()而言即使在模式中设置了全局模式(g ),它每次
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 正则 表达式 知识 详解
限制150内