继续分享Python正则表达式基础,今天给大家分享的正则表达式特殊符号是“[]”。中括号十分实用,其有特殊含义,其代表的意思是中括号中的字符只要满足其中任意一个就可以。其用法一共有三种,分别对其进行具体的代码演示,在最后进行总结,具体的教程如下。

1、如下图所示,匹配模式为[abcd],在这里正则表达式代表的意思是字符串第一个字符是abcd四个字符中的任意一个,然后后面的字符是“cpeng123”,如果满足匹配条件,则输出结果,如果不满足,则不显示任何结果,如下图所示。

很显然原始字符串的第一个字符是d,和匹配模式相接,所以输出结果。

2、为了更好的加强理解,现在将原始字符串改为“acpeng123”,其他部分不做改动,如下图所示。

可以看到匹配的结果是“acpeng123”,匹配成功。

3、为进一步理解中括号的意思,现在将原始字符串改为“ecpeng123”,其他部分不做改动,如下图所示。

此时可以看到没有任何结果输出,因为在中括号中没有对应的匹配字符,满足不了匹配要求,所以无任何输出。

4、看下面一个例子,提取电话号码,这个在实际应用中十分常见。在这里介绍中括号的另外一种表达方式即[0-9],这个特殊字符代表的意思是数字0到9中的任意一个字符。下面的匹配模式'(1[34578][0-9]{9})'代表的意思是字符串以1开头,然后第二个字符为3、4、5、7、8中任意一个,之后的字符是0到9中的数字,但是限定为9次,也就是说电话号码的长度为1+1+9=11位。如果满足上面的匹配要求,就输出成功,否则就不输出任何的字符。

如上图,很明显原始字符串满足匹配的要求,所以有输出结果。

拓展知识:[a-z]代表26个英文小写字母;[A-Z]代表26个英文大写字母。

5、为了进一步加强理解,将原始字符串改为160开头的号码,然后进行输出,如下图所示。

可以看到无任何输出结果。

6、中括号的第三章用法是[^],在中括号中加入特殊字符“^”,表示非,取反的意思。举个栗子,“[^1]”的意思是字符不等于1,下图是代码演示。

可以看到原始字符串与匹配模式'(1[34578][^1]{9})'匹配成功,因为从第二个字符之后,字符串中就没有1出现,符合匹配规则。

即便是原始字符串中出现非数字的字符,只要不是1,也能够匹配成功,如下图所示。

7、为了加强理解,先将原始字符串中的号码改为‘18042682515’,在字符串后边加个1,然后匹配模式不改变,如下图所示。

可以看到此时无任何输出结果,因为原始字符串中出现了1,而匹配模式要求不能出现1,所以匹配不成功。

8、最后总结一下特殊字符中括号的用途。一、中括号中的任意一个字符,如[abcd],代表a、b、c、d这四个字符中的任意一个。

二、表示区间,如[0-9],代表数字0到9中的任意一个。同理[a-z],[A-Z],其代表的意思在上面有提及,在此就不再赘述了。

三、表示非或者取反,专有的表达式是[^],如匹配模式[^1]表示匹配的字符不为1。

四、中括号中的“.”,如匹配模式[.]或“*”,如匹配模式[*],就是纯粹的代表“.”号和“*”号,不再是代表特殊字符中代表的任意字符或出现多次的意思,这点需要特别注意。

中括号在模式匹配的过程中十分常用,希望小伙伴们都能够好好理解和掌握。

Python正则表达式初识(六)的更多相关文章

  1. Python正则表达式初识(十)附正则表达式总结

    今天分享正则表达式最后一个特殊字符“\d”,具体的教程如下. 1.特殊字符“\d”十分常用,其代表的意思是数字.代码演示如下图所示. 其中“+”的意思是表示连续,在这里代表的意思是连续的数字.但是输出 ...

  2. Python正则表达式初识(二)

    前几天给大家分享了Python正则表达式初识(一),介绍了正则表达式中的三个特殊字符“^”.“.”和“*”,感兴趣的伙伴可以戳进去看看,今天小编继续给大家分享Python正则表达式相关特殊字符知识点. ...

  3. Python正则表达式初识(九)

    继续分享Python正则表达式的基础知识,今天给大家分享的特殊字符是[\u4E00-\u9FA5],这个特殊字符最好能够记下来,如果记不得的话通过百度也是可以一下子查到的. 该特殊字符是固定的写法,其 ...

  4. Python正则表达式初识(八)

    继续分享Python正则表达式的基础知识,今天给大家分享的特殊字符是“\w”和“\W”,具体的教程如下. 1.“\w”代表的意思是该字符为任意字符,但是和特殊字符“.”的意思不同.“\w”代表的字符主 ...

  5. Python正则表达式初识(七)

    继续分享Python正则表达式的基础知识,今天给大家分享的特殊字符是“\s”.“\S”,具体的教程如下. 1.“\s”代表的意思是匹配空格,匹配模式“加\s油”代表的是字符“加”和“油”之间有空格的意 ...

  6. Python正则表达式初识(五)

    正则表达式的内容很丰富,今天小编继续给大家分享Python正则表达式的基础知识.今天要给大家的讲的特殊字符是竖线“|”.竖线“|”实质上是一个或的关系. 1.直接上代码演示,比方说我们需要匹配一个字符 ...

  7. Python正则表达式初识(四)

    今天继续给大家分享Python正则表达式基础知识,主要给大家介绍一下特殊字符“{}”的用法,具体的教程如下. 特殊字符“{}”实质上也是一个限定词的用法,其限定前面字符所出现的次数,其常用的模式有三种 ...

  8. Python正则表达式初识(三)

    前几天给大家分享了Python正则表达式基础(一)和Python正则表达式基础(二),感兴趣的小伙伴可以点击进去学习,今天继续给大家分享Python正则表达式基础. 1.正则表达式特殊字符“+”,其代 ...

  9. Python正则表达式初识(一)

    首先跟大家简单唠叨两句为什么要学习正则表达式,为什么在网络爬虫的时候离不开正则表达式.正则表达式在处理字符串的时候扮演着非常重要的角色,在网络爬虫的时候也十分常用,大家可以把它学的简单一些,但是不能不 ...

随机推荐

  1. Android 最火的高速开发框架xUtils

    Github下载地址:https://github.com/wyouflf/xUtils xUtils简单介绍 xUtils 包括了非常多有用的Android工具. xUtils 最初源于Afinal ...

  2. IP address could not be resolved: Temporary failure in name resolution

    今早发现mysql日志中有非常多例如以下的警告: 140724 18:41:25 [Warning] IP address '172.16.18.217' could not be resolved: ...

  3. 浅谈 trie树 及事实上现

    定义:又称字典树,单词查找树或者前缀树,是一种用于高速检索的多叉树结构. 如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树. 核心思想:是空间换时间.利用字符串的公共前缀来减少查询时间的开 ...

  4. Boostrap零散

    12 row 是核心控件 class="form-control" 弹窗口<input data-toggle="modal" data-target=& ...

  5. svn回到某个历史版本的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 一.在选中的文件上弹出svn的右键菜单,单击"Updateto revision"菜单项,如下图: ...

  6. Android 如何打造Android自定义的下拉列表框控件

    一.概述 Android中的有个原生的下拉列表控件Spinner,但是这个控件有时候不符合我们自己的要求, 比如有时候我们需要类似windows 或者web网页中常见的那种下拉列表控件,类似下图这样的 ...

  7. PostgreSQL Replication之第八章 与pgbouncer一起工作(5)

    8.5 维护 pgbouncer 除了我们在本章已经说明的,pgbouncer有一个很好的能够执行基本管理和监控任务的交互式管理界面. 它是如何工作的呢?pgbouncer提供给您一个虚假的称为pgb ...

  8. PostgreSQL Replication之第六章 监控您的设置(1)

    在本书的前几章,您已经学习了各种复制以及如何配额制各种类型的场景.现在是时候通过增加监控来让您的设置更加可靠了. 在本章中,您将学习监控什么以及如恶化实施合理的监控车辆.您将学习: • 检查您的 XL ...

  9. ES6中includes、startsWith、endsWith

    es6新增includes:返回布尔值,表示是否找到字符串.startsWith:返回布尔值,表示字符串是否在源字符串的头部位置.endsWith:返回布尔值,表示参数字符串是否在源字符串尾部. va ...

  10. bash编程,while嵌套case语句, file不能判断文件存在与否

    写一个脚本, 完成如下要求 (1)脚本可接受参数 : start, stop, restart, status, (2)如果参数非非法, 提示使用格式后报错退出; (3)如果是start, 则创建/t ...