#元字符在re模块中有特殊意义的字符,有:^ $. * + {} [] () | \

^$

#表示开头结尾,注意:[^]表示取反

.

#点,表示任意一个字符,包括空格(一个空白字符),\t(换行符)。但是不能匹配\n(换行符)

*

#表示前一个字符出现次数任意次,包括零次

+

#表示前一个字符出现一次以上

{N,M}

#表示前一个字符出现N-M次

?

#表示前面一个字母出现0或1次

[patten1,patten2]

#表示匹配patten1或patten2,中间不需要分割符

#[]还可以取消元字符的特殊意义,但 - \ ^ 除外

##例如:[.*]即是匹配字符 . 或字符 *

##例如:[a-z]即是匹配所有小写字母

##例如:[^45]即是匹配除了4和除了5,同样不需要分割符

##例如:[\d]即是匹配所有数字

()

#表示分组,可以与 | 合用,(ab|cd)表示匹配字符 ab 或 字符 cd

#分组还可以给匹配规则命名,(?P<NAME>patten)表示将规则patten匹配到的内容命名为NAME,在re.search('patten','string').group(*varg)是调用

ret=re.search('(?P<name>\w{3})/(?P<number>\d{3})','www.baidu.com/glx/311')
print(ret.group())
print(ret.group('name'))
print(ret.group('number')) #############
glx/311
glx
311

#当使用re.findall()方式时,匹配规则中含有()分组,则匹配到的内容会只显示分组中的内容(分组的优先级较高)

#使用(?:patten),?: 作用时取消分组的权限

ret1=re.findall('www.(\w+).com','www.baidu.com')
ret2=re.findall('www.(?:\w+).com','www.baidu.com')
print(ret1)
print(ret2) ########
['baidu']
['www.baidu.com']

\

#可以将没有意义的字符表示成有意义的字符,如\d,d字符本身是没有意义的,但re模块可将其解释成所有数字

#还可以取消特殊意义,如\.,.(点)字符本身有特殊意义,re模块可以将其解释成字符点

##使用 \ 时,需要注意原本使用的内容在python中是否有意义,如\b,在python中表示退格符,在re模块中表示边界,所以在使用\b时在规则中要写成 \\b 或 r'\b' ,使得python传入给re模块时时 \b 两个没有意义的字符

##在匹配 \ 时,需要使用 \\\\ ,这样python传给re模块是才能是 \\ 两个没有意义的字符,re模块再解释成 \ 单纯的一个字符

##匹配出 \ 在显示时,是 ['\\']

ret=re.findall('\\\\','aa\c')
print(ret) ########
['\\']

#所以使用在python中有特殊意义的字符时,需要先取消其特殊意义

最新文章

  1. ABP文档 - 本地化
  2. 关于安装安卓SDK出现无法更新问题时的解决办法
  3. 前端学HTTP之网络基础
  4. 例子:Database - Linq to sql
  5. ZooKeeper系列3:ZooKeeper命令、命令行工具及简单操作
  6. 代码重构-2 简单不变的 if else 用字典代替
  7. java 面向对象编程-- 第十三章 反射、类加载与垃圾回收
  8. hdu 4725
  9. C语言关键字register、extern、static
  10. 一个tomcat部署俩个java web项目
  11. shell 守护进程
  12. Make Things Move -- Javascript html5版(三)三角函数形式的动画
  13. C# 值类型与引用类型的异同
  14. win10 系统右键菜单不显示文字(只有小图标)修复方法
  15. 关于模块安装及cmd安装pip3模块失败的 Read timed out.的补救方法
  16. 转换编码utf-8
  17. 美国运营商推送假5G图标:用户当场蒙圈了
  18. APP发行渠道
  19. JS 解决json字符串转换成json树形输出
  20. 如何在Linux系统中安装VMware

热门文章

  1. ZOJ2562
  2. leetcode 132 Palindrome Pairs 2
  3. vue-resourse简单使用方法
  4. egret 篇——关于ios环境下微信浏览器的音频自动播放问题
  5. 博弈论 | 暑期集训Day2学习总结
  6. gdal在redhat4.4下安装
  7. gethostname gethostbyname gethostbyaddr 获得主机相关信息
  8. 在vue中使用pug
  9. Elasticsearch 5.6.4 window 安装并简单使用head
  10. 知道了为什么osg::impostor可以这样设置geometry的QUADS了