文章插图
接着上篇 , 这篇我们以一个手机号码的匹配进化历程来学习正则的相关知识点 。记住了 , 我们要匹配一个手机号(用正则表达式) , 整篇就是干这个事 。目的是学习正表达式的使用 。
假设我们需要匹配的手机号为:18857012018
一、字符直接量:匹配自身/18857012018/.test(“ 18857012018”);
// false
/18857012018/.test(“ 18857012018”);
// true
/18857012018/.test(“ui18857012018dd”);
// true
正则表达式在匹配时 , 只要输出匹配内容就返回true , 不考虑前面的ui和后面的dd 。最后这种情况显然不是我们想要的 。
如何精准匹配了 , 接着往下看 。
二、锚点:指定匹配位置1、^匹配起始位置
/^http:/.test(“http://www.163.com”);
// true
/^http:/.test(“ahttp://www.163.com”);
//false
/^http:/.test(“https://www.163.com”);
//false
2、$匹配结尾位置
/.jpg$/.test(“1.jpg”); //true
/.jpg$/.test(“1.jpg png”); //false
/.jpg$/.test(“1.png”); //false
/.jpg$/.test(“regexp.png”); //false
3、b匹配一个单词边界
正则表达式的“匹配”有两种概念 , 一种是匹配字符 , 一种是匹配位置 。这里所谓的边界就是匹配位置 。
/bisb/.test(“this”); //false
/bisb/.test(“that is reg”); //true
/bisb/.test(“thatisreg”); //false
/B[Ss]cript/; // 匹配非边界
最后一个正则表达式/B[Ss]cript/能够与”JavaScript”和”/postscript”匹配 , 但不与”script”与”Script”匹配 , 因为B表示非边界匹配 。
讲清楚上面三点之后 , 现在我们来对一开始提到的那个电话号码的例子进行进一步的改造 。改造之后是这样的:
/^18857012018$/.test(“18857012018”); //true
/^18857012018$/.test(“ui18857012018dd”);//false
/^18857012018$/.test(“13712345674″);//false
这样看 , 是不是解决了号码前后有字符不匹配的情况 , 但是细心的同学会发现 , 这个正则只能识别这个标准的手机号码 , 能不能用一种电话号码格式识别所有的电话号码了?如果能 , 那这个表达式不就更通用了嘛 。
回答是有的 , 不急 , 继续往下看
三、字符类:匹配一类字符中的一个[abc]:匹配a或b或c 。[0-9]:匹配0到9之间的一个数字(只要字符串中有一个数字就为true,定义是匹配字符串中是否有数字) 。[^0-9]:匹配非数字一个字符 。[a-z]:匹配有一个字母(只要字符串有一个字母就为true,定义是匹配字符串中是否有字符) 。.:匹配任一字符(换行符除外) 。语法应用举例 , 比如:
/[0-9]/.test(“123”) //true
/[0-9]/.test(“asd”) //false
/[^0-9]/.test(“asd”) //true
/[a-z]/.test(“asd”) //true
/./.test(“allen”) //true
/./.test(“12″) //true
/[a-z]/.test(’12a3′) // true
/[a-z]/.test(‘123’) // false
有了这些为基础 , 上面的实例我们就可以进一步改进 , 电话号码中除了第一位是1 , 其它每一位都是一个0到9之间的任意数字 。所以我们可以这样改进:
/^1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$/.test(“13762571094”);//true
/^1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$/.test(“13712345678″);//true
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- python入门详细教程 append函数是什么意思
- 免费的编程自学网站 python免费自学行吗
- python的实验报告参考文献 python参考文献有哪些
- 简单python爬虫完整代码 python爬虫案例讲解
- 正则表达式的匹配规则 正则匹配任意字符和空格
- python与java的区别 java语言的主要特点是什么
- python开发工具分享 eclipse安装pydev插件步骤
- python爬虫教程 python部落冲突脚本
- Python列表常用操作小技巧 python中map函数的用法
- 正则表达式使用实例 oracle如何使用正则表达式