.的用法

import re

s = 'fhsdjakaxdsancjh'
# .代表一个元素,完成模糊匹配
res = re.findall("a..x", s) # 找到s中以a开头x结尾中间有两个元素的结果
print(res) # ['akax'] res1 = re.findall("^f..d", s) # ^代表只能从字符串的开头进行匹配
print(res1) # ['fhsd'] res2 = re.findall("n..h$", s) # $代表必须以h结尾
print(res2) # ['ncjh']

重复匹配

# 重复匹配(*,+,?)
s1 = 'seyqindddddiznsk'
res = re.findall("ind*", s1) # *是匹配0到无穷次 (贪婪匹配)
print(res) # ['inddddd'] res1 = re.findall("ind+", s1) # +是匹配1到无穷次(贪婪匹配)
print(res1) # ['inddddd'] res2 = re.findall("ind?", s1) # +是匹配(0,1)
print(res2) # ['ind'] res3 = re.findall("ind{3}", s1) # {} 表示匹配的数量
print(res3) # ['inddd']

[]用法

# []作用
res1 = re.findall("x[yz]", "xyuuuxz") # x与yz组合匹配
print(res1) # ['xy', 'xz'] res2 = re.findall('x[y,z]p', 'xypisispux,pu')
print(res2) # ['xyp', 'x,p'] res3 = re.findall('q[a-z]', 'qjksmdqb') # [a-z]就是p于a到z里面任意一个都可以匹配
print(res3) # ['qj', 'qb'] res4 = re.findall('q[0-9]*', 'q988jsjjsjksjkd9')
print(res4) # ['q988'] # [^] 非 res1 = re.findall('q[^a-z]*', 'q213') # ^在[]中就是“非”的意思
print(res1) # ['q213'] res2 = re.findall('q[^a-z]*', 'qabc') # ^在[]中就是“非”的意思
print(res2) # ['q'] 没有匹配到

\用法

# \(反斜杠):让有意义的变为无意义,让无意义变为有意义
'''
\d 匹配任何十进制数;它相当于[0-9]
\D 匹配任何非数字字符;它相当于[^0-9]
\s 匹配任何空白字符;它相当于[\t\n\f\v]
\S 匹配任何非空白字符;它相当于[^\t\n\f\v]
\w 匹配任何字母数字字符;它相当于[a-zA-Z0-9]
\W 匹配任何非字母数字字符;它相当于[0-9]
\b 匹配一个特殊字符边界,比如空格,&,#等
'''
res1 = re.findall('\d+', "sada55578dsdsa")
print(res1) # ['55578'] res2 = re.findall('\D+', "sada55578dsdsa")
print(res2) # ['sada', 'dsdsa'] res3 = re.findall('\s+', "hellow world")
print(res3) # [' '] res4 = re.findall('\S+', "hellow world")
print(res4) # ['hellow', 'world'] res5 = re.findall('\w+', "dasd-sh11+")
print(res5) # ['dasd', 'sh11'] res6 = re.findall('\W+', "dasd-sh11+")
print(res6) # ['-', '+']
# 让元字符变得无意义例子 res7 = re.findall('www\*baidu', 'www*baidu')
print(res7) # ['www*baidu'] # res8 = re.findall('(84', '(84') # 报错
# print(res8) res8 = re.findall('\(84', '(84')
print(res8) # ['(84']

Python学习第十三课——re(正则表达式)模块的更多相关文章

  1. Python学习笔记6-Python中re(正则表达式)模块学习

    今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍Python中常用的正则表达式处理函数. re.match re.match 尝试从 ...

  2. Python学习第二十三课——Mysql 表记录的一些基本操作 (查)

    查(select * from 表名) 基本语法: select <字段1,字段2,...> from <表名> where <表达式>; 例如,查询student ...

  3. Python学习第七课

    Python学习第七课 'Alex' "Alex"print('hello'*5) #重复输出字符串 print('hellowold'[2:]) #类似于切片操作:会取出 llo ...

  4. Python学习第六课

    Python学习第六课 课前回顾 列表 创建 通过 [] :写在[]里,元素之间用逗号隔开 对应操作: 查 增 append insert 改(重新赋值) 删除(remove del pop(删除后会 ...

  5. python学习第十三天 -模块和包

    模块和包 大家都知道,在计算机程序开发的过程中,随着程序代码越写越多,这样代码就会越不容易维护. 有时候为了好维护代码,把不同功能的函数放到不同的xx.py文件中. 在python中,一个.py文件就 ...

  6. python学习笔记(12)常用模块

    一.模块.包 什么是模块? 模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称. 什么是包? 包, ...

  7. Python学习笔记4(函数与模块)

    1.Python程序的结构 Python的程序由包(package).模块(module)和函数组成. 模块是处理一类问题的集合,由函数和类组成. 包是由一系列模块组成的集合.包是一个完成特定任务的工 ...

  8. Python 学习 第十五篇:模块搜索路径和包导入

    在导入自定义的模块时,除了指定模块名之外,也需要指定目录,由于Python把目录称作包,因此,这类导入被称为包导入.包导入把计算机上的目录变成Python的命名空间,而目录中所包含的子目录和模块文件则 ...

  9. python学习笔记:第八天(模块)

    Python3 模块 脚本上是用 python 解释器来编程,如果从 Python 解释器退出再进入,那么定义的所有的方法和变量就都消失了. 为此 Python 提供了一个办法,把这些定义存放在文件中 ...

随机推荐

  1. centos默认安装mysql的默认密码

    安装centos时选择安装Mysql 服务器 mysql的默认登录密码为空,但是直接登录的时候有报错: [root@localhost bin]# mysql -u root -pEnter pass ...

  2. java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [META-INF/services/com.alibaba.druid.filter.Filter].

    九月 11, 2019 2:56:36 下午 org.apache.catalina.loader.WebappClassLoaderBase checkStateForResourceLoading ...

  3. 清晰架构(Clean Architecture)的Go微服务: 程序设计

    我使用Go和gRPC创建了一个微服务,并将程序设计和编程的最佳实践应用于该项目. 我写了一系列关于在项目工作中做出的设计决策和取舍的文章,此篇是关于程序设计. 程序的设计遵循清晰架构(Clean Ar ...

  4. 排序算法之希尔排序的python实现

    希尔排序(Shell’s Sort)是插入排序的一种,是直接插入排序算法的一种更高版本的改进版本. 希尔排序的工作原理 如下: (1)把记录按步长gap分组,对每组记录采用直接插入排序方法进行排序: ...

  5. rar文件简单分析

    1.rar文件也是由许多特定的块组成 注1:CRC为CRC32的低2个字节(MARK_HEAD的CRC 为固定的0x5261,非计算出来的值) 注2: HEAD_TYPE=0x72 标记块 HEAD_ ...

  6. vscode git连接github

    上一篇文章中介绍了vscode中git的简单使用方法vscode git的简单使用 上次只讲到了本地库的创建,这次说明下怎么push到github上 首先需要有一个github的账号  github官 ...

  7. PLSQL Developer 连接多个数据库

    1.新建一个Oracle的dblink 2.打开客户端instantclient目录,可能不是和PLSQL Developer 一个目录,然后用记事本编辑tnsnames.ora 3.把链接粘贴进去, ...

  8. 7 scrapy 初识

    scrapy框架 框架介绍: Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化 ...

  9. 【Go语言系列】1.1、GO语言简介:什么是GO语言

    一.Go的起源 Go语言的所有设计者都说,设计Go语言是因为 C++ 给他们带来了挫败感.在 Google I/O 2012 的 Go 设计小组见面会上,Rob Pike 是这样说的: 我们做了大量的 ...

  10. 创业学习--《预判行业机会》--B-2.预判模块---HHR计划--以太一堂

    一,<开始学习> 1,行业机会的判断,是可以通过不断地训练提高自己的判准的概率的,要科学思考创业. 2,创业者在行业机会上的三个问题: a. 对市场变化,敏感性太弱,没有洞察行业的意识. ...