首页 > 作文

正则表达式匹配手机号格式(python正则表达式匹配汉字方法)

更新时间:2023-04-05 14:48:36 阅读: 评论:0

接着上篇,这篇我们以一个手机号码的匹配进化历程来学习正则的相关知识点。记住了,我们要匹配一个手机号(用正则表达式),整篇就是干这个事。目的是学习正表达式的使用。

假设我们需要匹配的手机号为:18857012018

一、字符直接量:匹配自身

/18857012018/.test(“ 18857012018”);

// fal

/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”);

//fal

/^http:/.test(“https://www.微笑作文400字163.com”);猪女出装

//fal

2、$匹配结尾位置

/.jpg$/.test(“1.jpg”); //true

/.jpg$/.test(“1.jpg png”); //fal

/.jpg$/.test(“1.png”); //fal

/.jpg$/.test(“regexp.png”); //fal

3、b匹配一个单词边界

正则表达式的“匹配”有两种概念,一种是匹配字符,一种是匹配位置。这里所谓的边界就是匹配位置。

/bisb/.test(“this”); //fal

/bisb/.test(“that is reg”); //true

/bisb/.test(“thatisreg”); //fal

/b[ss]cript/; // 匹配非边界

最后一个正则表达式/b[ss]cript/能够与”javascript”和”/postscript”匹配,但不与”script”与”script”匹配,因为b表示非边界匹配。

讲清楚上面三点之后,现在我们来对一开始提到的那个电话号码的例子进行进一步的改造。改造之后是这样的:

/^18857012018$/.test(“18857012018”); //true

/^18857012018$/.tes英雄联盟迅捷斥候出装t(“ui18857012018dd”);//fal

/^18857012018$/.test(“13712345674″);//fal

这样看,是不是解决了号码前后有字符不匹配的情况,但是细心的同学会发现, 这个正则只能识别这个标准的手机号码,能不能用一种电话号码格式识别所有的电话号码了?如果能,那这个表达式不就更通用了嘛。

回答是有的,不急,继续往下看

三、字符类:匹配一类字符中的一个

[abc]:匹配a或b或c。[0-9]:匹配0到9之间的一个数字(只要字符串中有一个数字就为true,定义是匹配字符串中是否有数字)。[^0-9]:匹配非数字一个字符。[a-z]:匹配有一个字母(只要字符串有一个字母就为true,定义是匹配字符串中是否有字符)。.:匹配任一字符(换行符除外)。

语法应用举例,比如:

/[0-9]/.test(“123”) //true

/[0-9]/.test(“asd”) //fal

/[^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’) // fal

有了这些为基础,上面的实例我们就可以进一步改进,电话号码中除了第一位是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

此刻是不是感觉又好了一点,不过,这显然太长了呢,继续往下看。

关医患沟通心得体会于元字符的概念这里就不详细了,这里列举一些元字符,来看看它们在与正则中都表示什么特殊意义。

^:开头、$:结尾、b:边界。d:[0-9]。d:[^d]s:空白符。s:[^s]w:[a-za-z0-9_]。w:[^w]

语法应用举例,比如:

/d/.test(“123″); //true

/d冷门暴利行业/.test(“1dsf”); //true 只要有一个数字就是tru

/d/.test(“1dsf”); //true

/d/.test(“123″); //fal

好了,接着我们在一开始匹配电话号码进行改进:

/^1dddddddddd$/.test(“13762571094”);//true

/^1dddddddddd$/.test(“13712345678”);//true

/^1dddddddddd$/.test(“1376257109x”);//fal

是不是感觉代码比刚刚短了很多了呢?但这还是不够。接着往下看

四、量词:出现的次数

{n,m}:n到m次。?:{0,1}+:{1,}*:{0,}

语法应用举例:

/d*/.test(“abc”);// true

/d+/.test(“abc”);// fal

/d+/.test(“1abc”);// true

接着将上面的匹配电话号码的实例进一步改进:

/^1d{10}$/.test(“13762571094”);//true

/^1d{10}$/.test(“13712345678”);//true

/^1d{10}$/.test(“1376257109x”);//fal

写在最后的结束语:

整篇文章分了四个部分来讲,每次都用举例的方式讲清楚一个语法之后就接着对贯串全文的匹配电话号码的例子进行改造,有节奏的将正则匹配的常用语法,讲了一遍,希望对大家带来益处。如有本文有讲的不对的对方,欢迎留言。

本文发布于:2023-04-05 14:48:34,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/aaeee2cc376e0249f57c12b7b377c75d.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:正则表达式匹配手机号格式(python正则表达式匹配汉字方法).doc

本文 PDF 下载地址:正则表达式匹配手机号格式(python正则表达式匹配汉字方法).pdf

标签:字符   电话号码   边界   正则
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图