正则表达式入门-Regular Expression

前言:正则表达式是真的不容易搞懂,有时查完各个字符的含义也还是会是一脸懵,但是入门还是很容易的,这里就简单学习一下正则表达式。 1.正则表达式是什么? 规则表达式(Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来匹配,检索和替换那些符合某个模式(规则)的文本等。 简单来说就是代表了一个规则,通过这个规则可以匹配字符串。 2.正则表达式的基础语法 ' . ' 点表示的是可以匹配除了(\n)换行符以外的任意一个字符(数字,字母,特殊字符) ' [ ] ' 方括号表示匹配一个范围,一个集合 比如: [0-9] 表示的是0-9之间的任意一个数字 [a-z] 表示的是所有的小写字母中的任意一个 [A-Z] 表示所有的大写字母中的任意一个 [a-zA-Z] 表示所有的字母中任意一个 [0-9a-zA-Z] 表示所有字母和数字中的任意一个 ' | ' 表示的是或者 ' ( ) ' 表示分组,提升优先级(优先计算括号内,多组括号就从左到右开始) ' * ' 表示前面的表达式出现了0次到多次 [a-z][0-9]* : 一个小写字母后有数字0-多个 比如fgh34444或者hdd ' + ' 表示的是前面的表达式出现了1次到多次,也就是至少出现一次 [a-z][9]+ :一个小写字母后至少有一个9或者多个9 比如hdch8777 就不匹配 ' ? ' 表示前面的表达式出现了0次到1次,最少0次,最多1次 ' { } ' 限定符 限定前面的表达式的次数 比如: {0,} 表示前面表达式出现了0次到多次,和 * 一样 {1,} 表示前面表达式出现了1次到多次,和 + 一样 {0,1} 表示前面表达式出现了 0次到1次,和 ? 一样 {5,10} 表示前面表达式出现了5-10次 {5} 表示前面的表达式出现了5次 ' ^ ' 表示以什么开始 或者取非(反) 比如: ^[0-9] 表示匹配的字符串要以数字开头 [^0-9]取反,也就是说匹配的字符串要是非数字 [^0-9a-zA-Z_] 取反,就是非特殊符号 ' 就是必须以数字结尾) ^和$ 相当于严格模式 ^[a-z][0-9]$ 必须以小写字母开头,以数字结尾 cdsjb678✘ b5✔ \d 数字中的人一个,相当于[0-9] \D 非数字的人一个, 相当于[^0-9] \s 空白符中任意一个 \S 非空白符 \w 非特殊符号 相当于[0-9a-zA-Z_] \W 特殊符号 相当于 [^0-9a-zA-Z_] \b 单词边界 3.正则表达式小案例 匹配座机: 比如0531-88284888 一般都是3/4位+-+7/8位 \d{3,4}[-]\d{7,8} (即随机数字中的一位出现3-4次,紧跟着-,然后就是数字出现7-8次) 匹配邮箱:比如changanyouren@163.com 分析电子邮件组成一般为@. yourname:任意英文字母(a-z/A-Z)、数字(0-9)、下划线()、英文句点(.)、连字符(-),长度大于 0。----------->[0-9a-zA-Z.-]+ domain:任意英文字母(a-z/A-Z)、数字(0-9)、下划线()、英文句点(.)、连字符(-),长度大于 0。------------>[@][0-9a-zA-Z.-]+ extension:任意英文字母(a-z/A-Z),长度大于0 optional-extension:"."开头,后面跟任意英文字母(a-z/A-Z),可有可无 上面两部分即域名部分,一般域名有一级二级之分,所以是 . 字母任意一位出现1-多次,再利用括号分组,这一组出现一次即一级域名,出现两次即二级域名。 -------------->([.][a-zA-Z]+){1,2} 最终:[0-9a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+([.][a-zA-Z]+){1,2} 4.RegExp 对象的简单使用 ①创建RegExp对象和test方法 //通过构造函数的方式创建Regexp对象 var reg = new RegExp(/\d{5}/) //匹配5个数字 reg.test('asjhdkj234454') //返回true //通过字面量的方式创建Regexp对象 var reg = /\d{5}/ reg.test('dddddddd') //返回false image image test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。 ②提取一个字符串内所有数字 比如有这样的一串字符串‘小红学号:172638,小兰学号:237918,小王学号:617289’,我想要将其中所有数字提取出来。 image match()是字符串的方法,传入正则表达式,返回数组 g : 在正则表达式中表示全局匹配,这里就是将匹配的3组都提取出来了 ③ i :在正则表达式里忽略大小写 image 利用字符串的replace方法替换了所有的h 谢谢!

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):