re模块元字符
#元字符在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中有特殊意义的字符时,需要先取消其特殊意义
re模块元字符的更多相关文章
- Python_Mix*re模块,元字符,量词
模块: 模块就是一组功能的集合,你要和某个东西打交道,而这个东西本身和Python没有关系,这个东西本身就存在,Python提供了一个功能的集合,专门负责和这个东西打交道. 模块的类型: 内置模块 不 ...
- Python::re 模块 -- 在Python中使用正则表达式
前言 这篇文章,并不是对正则表达式的介绍,而是对Python中如何结合re模块使用正则表达式的介绍.文章的侧重点是如何使用re模块在Python语言中使用正则表达式,对于Python表达式的语法和详细 ...
- Python3 re模块(正则表达式)
一:什么是正则? 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. (在Python中)它内嵌在Python中,并通过r ...
- python之路(8)常用模块
目录 os模块 sys模块 json模块 pickle模块 xml模块 re模块 logging模块 configparser模块 hashlib模块 time模块 random模块 subproce ...
- python之模块2
1.logging模块 等级 debug--->info--->warning(默认)--->error--->critical 配置两种方式: #1.congfig函数 lo ...
- python基础之模块二
六 logging模块 6.1 函数式简单配置 import logging #导入模块 logging.debug('debug message') #调试消息 logging.debug('inf ...
- 包+time+datetime+random+hashlibhmac+typing+requests+re模块(day17整理)
目录 昨日内容 os模块 sys模块 json模块 pickle模块 logging模块 今日内容 包 相对导入 绝对导入 time模块 sleep 时间戳 time 格式化时间 strtime 结构 ...
- Python3 常用模块2
目录 time 模块 时间戳形式 格式化时间 结构化时间 time.time() time.sleep() datetime 模块 random 模块 hashlib 模块 和 hmac 模块 typ ...
- Python全栈 正则表达式(概念、、语法、元字符、re模块)
前言: 普通人有三件东西看不懂:医生的处方,道士的鬼符,程序员得正则表达式 什么是正则表达式? 正则表达式,又称规则表达式,英文名为Regular Expression,在代 ...
随机推荐
- shell 版本号比较_用shell如何比较软件版本号的大小
比如你想写个脚本来比较两个版本号 (如"1.2.30" 和"1.3.0")来辨认哪个版本是最新的,有可以比较两个版本号字符串的shell脚本吗? 当你写了一个s ...
- uoj60 怎样提高智商
题意:你需要构造n个四项选择题.格式为:问在前i个问题中选了几个hi字母? 输出有最多正确答案的构造方案. 标程: #include<cstdio> using namespace std ...
- thinkPHP 字段映射功能
thinkPHP的字段映射功能可以让你在表单中隐藏真正的数据表字段,而不用担心放弃自动创建表单对象的功能,假设我们的User表里面有username和email字段,我们需要映射成另外的字段,定义方式 ...
- natapp出现Invalid Host header
前端是vue 3.x 项目,需要更改vue的配置文件 vue.config.js,在module.exports中添加devServer:{disableHostCheck:true}
- Neo4j-Cypher语言语法
Neo4j-Cypher语言语法 梦飞扬 2018-03-15 264 阅读 Neo4j 本文是记录Neo4j图数据库中实用的Cypher语言语法. Cypher是什么 "Cypher&qu ...
- yii2下使用支付宝
最近入坑了yii2 感觉是个很强大的框架.使用yii做支付宝的移动支付的时候出了点问题,记录下来避免以后忘记了. 使用的是支付宝立即到账的功能,网上很多集成好的接口我就不重复了,找不到的话github ...
- storm一些可调节的参数
# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreeme ...
- vue使用远程在线更新代码
一.main.js import Vue from 'vue' import App from './App' import router from './router' import Vuex fr ...
- 廖雪峰Java10加密与安全-5签名算法-1RSA签名算法
1.数字签名 甲在发送加密消息的时候,还要发送自己的签名,而这个签名是用甲的privateKey计算的:而乙要验证这个签名是否是合法的,会用甲的publicKey去验证,如果验证成功,这个消息确实是甲 ...
- ArcMap应用——三维场景中井盖的属性配置
在精细三维场景中,有地面(包括道路面.马路牙子).有部件数据(包括井盖).我们会发现有马路牙子的地方比道路面要高出一部分,比如0.1米,但是雨水井盖却有些在路面上.有些在道路以外.就是说在道路面上的井 ...