一.正则表达式中的转义:

  "\" 表示转义符

    [()+*?/$.] 在字符组中一些特殊的字符会现出原形

    所有的\w \d \s (\n,\t) \W \D \S 都表示它原本的意义

    [-]只要卸载字符组的首位的时候表示普通的减号

  python中的转移符

  '\n':  '\' 赋予这个n一个特殊的意义,表示一个换行符

  r:表示取消转义

二.re模块

  1.findall:     re.findall('正则表达式','字符串')

      输出是一个列表里装着正则表达式切出来的一个个字符串

  例:

import re
ret = re.findall('\d+','545ds5444dsd545d')
print(ret) =>['', '', '']

  2.search:  re.search('正则表达式','字符串')

      输出的是正则表达式切除来的第一个符合条件的字符串

  例:

#通过正则表达式拿第一个符合条件的值
ret1 = re.search('\d+','545dsd99sd545d')
print(ret1.group()) =>545 #通过.group 拿序号里面的值
ret1 = re.search('(\d)(\d)(\d)','545dsd99sd545d')
print(ret1.group()) =>545
print(ret1.group(1)) => 5
print(ret1.group(2)) => 4
print(ret1.group(3))=> 5

  3.match:  re.match('正则表达式','字符串')

       和search类似,都是根据正则表达式返回第一个符合条件的字符串,但match只只针对第一个的数据类型必须和正则表达式相同,如果不容则报错

  例:

ret2 = re.match('\d+','545dsd99sd545d')
print(ret2.group()) =>545 ret2 = re.match('\d+','aa545dsd99sd545d')
print(ret2.group())=>AttributeError: 'NoneType' object has no attribute 'group'

  4.sub/subn:  re.sub('正则表达式','要替换的内容','执行的字符串')

      输出的是一个字符串

  例:

ret = re.sub('\d+','H','replace789nbc2xcz392zx')
print(ret) => replaceHnbcHxczHzx ret = re.subn('\d+','H','replace789nbc2xcz392zx')
print(ret) => ('replaceHnbcHxczHzx', 3) #subn 会返回替换次数

  5.split:  re.split('正则表达式','字符串')

       输出的是一个列表中装着以正则表达式定义切割的多个字符串

       如果正则表达式用括号括起来,则输出的是一个列表中装着所有内容(包括要切掉的)

  例:

ret = re.split('\d+','alex83egon20taibai40')
print(ret) =>['alex', 'egon', 'taibai', ''] ret = re.split('(\d+)','alex83egon20taibai40')
print(ret) =>['alex', '', 'egon', '', 'taibai', '', '']

  6.compile (会节省时间,适用于爬虫和自动化开发)

  只有在多次使用某一个相同的正则表达式的时候,这个compile才会提高程序的效率

  例:

re.findall('-0\.\d+|-[1-9]+(\.\d+)?','alex83egon20taibai40') 
# --> python解释器能理解的代码 --> 执行代码
ret = re.compile('-0\.\d+|-[1-9]\d+(\.\d+)?')
res = ret.search('alex83egon-20taibai-40')
print(res.group())

  7.finditer (会节省内存)

  例:

print(re.findall('\d','sjkhkdy982ufejwsh02yu93jfpwcmc'))
ret = re.finditer('\d','sjkhkdy982ufejwsh02yu93jfpwcmc')
for r in ret:
print(r.group())

  8.分组命名

  例:

ret = re.search("<(?P<name>\w+)>\w+</(?P=name)>","<h1>hello</h1>")
print(ret.group('name'))=>h1 可以分组命名之后按名字拿值
ret = re.search('<(?P<a>\w+)>(?P<b>\w+)</(?P<c>\w+)>','<a>wahaha</b>')
print(ret.group('c')) => b

re模块相关的更多相关文章

  1. Unity3d 音效模块相关

    关于Unity的音效方面,主要关注以下3个类: Audio Clip : audio data,导入到unity中的音频文件都是audio clip. Audio Sources : 挂载这audio ...

  2. Nginx日志和http模块相关变量

    $arg_PARAMETER #HTTP 请求中某个参数的值,如/index.php?site=www.ttlsa.com,可以用$arg_site 取得 www.ttlsa.com 这个值. $ar ...

  3. MM-采购模块相关业务

    采购模块主要业务流程: 1.收集采购需求(采购申请单),系统采购申请单单据可以由需求部门手工产生,也可以由系统的MRP(物料需求计划)来产生. 2,货源确定,用来确定所申请的物料,通过何种方式向供应商 ...

  4. 【iCore2 模块相关资料】iM_LAN 100M 以太网模块UDP例程

    ============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...

  5. nginx反向代理proxy模块相关参数

    http_proxy_module Proxy_pass proxy_pass指令属于ngx_http_proxy_module模块,此模块可以将请求转发到另一台服务器:官方说明:http://ngi ...

  6. 【iCore2 模块相关资料】发布模块DEMO 代码包,目前支持 iM_TFT30、 iM_LAN和 iM_RGB 三个模块

    iCore2 模块底板 和部分模块发布了,所以我们做了一个 DEMO 代码包,此代码包现在有以下功能: 1.支持 iM_TFT30 3寸触摸液晶模块(硬件已发布): 2.支持 iM_LAN 100M以 ...

  7. Python小知识点(4)--模块相关

    1.模块: 定义:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是以.py结尾的python文件(文件名:test.py,对应的模块名:test). 包:用来从逻辑上组 ...

  8. H3C光模块相关命令和检测方法

    <Sysname>  dis transceiver interface GigabitEthernet 1/0/28  查看 GigabitEthernet1/0/28 transcei ...

  9. python基本模块相关信息

    系统相关的信息模块: import sys sys.argv 是一个 list,包含所有的命令行参数. sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的 ...

  10. ansible操作模块相关

    1. 查看模块可用参数命令 ansible-doc -s module_name

随机推荐

  1. 比特镇步行(Walk)【虚点+bfs+dfs】

    Online Judge:NOIP2016十连测第一场 T3 Label:虚点,bfs,dfs 题目描述 说明/提示 对于100%数据,\(n<=200000\),\(m<=300000\ ...

  2. axios接口封装

    axios封装 import JsonP from 'jsonp' import axios from 'axios' import { Modal } from 'antd' export defa ...

  3. 错误 2 error C2059: 语法错误:“::”

    设置项目属性,在预定义处理器中添加定义NOMINMAX来禁止使用Vsual C++的min/max宏定义. 项目属性   ——> C/C++ ——> 预处理器 ——> 预处理器定义 ...

  4. 转:LPC2214的PLL与定时器设置

    原地址:http://blog.sina.com.cn/s/blog_4419d72d0100mu7h.html LPC2214的PLL与定时器设置 http://www.dpj365.cn/bbs/ ...

  5. PHP数组循环遍历的四种方式

     1.使用for循环遍历数组     conut($arr);用于统计数组元素的个数.     for循环只能用于遍历,纯索引数组!!!!     如果存在关联数组,count统计时会统计两种数组的总 ...

  6. 【Java爬虫】爬取南通大学教务处成绩

    没使用自动登录,所以获取是比较麻烦.. 1.http://jwgl.ntu.edu.cn/cjcx    进入官网,进行账号密码登录 2.点击全部成绩查询(也一定要点进去,不然cookie不会返回值) ...

  7. T2485 汉诺塔升级版(普及)(递归)

    https://www.luogu.org/problem/show?pid=T2485 题目背景 汉诺塔升级了 题目描述 现在我们有N个圆盘和N个柱子,每个圆盘大小都不一样,大的圆盘不能放在小的圆盘 ...

  8. 删除n天前的文件或文件夹 bat批处理

    @echo off @echo deleting... FORFILES /p "D:\a" /D -1 /C "cmd /c echo deleting @file . ...

  9. 【python之路30】反射

    一.反射 1.反射的基本介绍: 反射是所有程序的专有名词,在java,C#语言中都存在反射,那么什么是反射呢? python中 的反射概括来说:是通过字符串的形式导入模块,并通过字符串的形式去模块中寻 ...

  10. Windows Apache httpd-vhosts.conf

    <VirtualHost *:> DocumentRoot "D:\wamp\www" ServerName localhost </VirtualHost> ...