re匹配语法-match、search和findall
1.re.match() 匹配第一个值
列表里的值可以有多个范围,有一个符合就可以。
match只匹配第一个值,所以列表里的范围是第一个值得取值范围。如果第一个值被设定好且存在,那么列表的取值范围变为第二个,match返回的值会变成第一个和第二个。
有些内容首字符是固定的,比如手机号等。match的作用就是查看文件中的一些固定的字符是否出错或者获得文件中首个字符(没有指定首字符的情况下)。
import re
date = "5M345bc"
print(re.match("5[0-9]","345bc"))
print(re.match("[a-z,A-Z,0-9]",date))
2.re.search()
search 需要在取值范围后加上长度限定,否则和match一样,只会取符合条件的第一个值。
search是全局搜索,符合条件就返回,match是从第一个搜索。
search返回的是一个字符串,长度为花括号里的设定。
search从全局返回的是第一个符合条件的值,那么怎么才能返回所有符合条件的值?
import re
print(re.search("[a-z]{4}","345789abdc"))
print(re.search("3[0-9]{5}","345789abdc")) #花括号里的是返回值的最大个数,不能超过总长度。
print(re.search("[a-z,A-Z,0-9]{8}","345789abcd"))
3.findall() 返回所有符合条件的值。
search只返回花括号里设定长度的值的字符串,不设定长度就只返回一个字符,和match一样,只是search是全局。
findall 返回一个列表,里面的值可根据花括号里面的长度分离开来,成为列表中的一个一个元素。
import re
print(re.match("[0-9]","345789abdc"))
print(re.search("[a-z]{2}","345789abdc"))
print(re.search("[a-z,A-Z,0-9]{4}","345789abcd"))
print(re.findall("[a-z]{2}","345789abdc"))
print(re.findall("[a-z,A-Z,0-9]{4}","345789abcd"))
# <_sre.SRE_Match object; span=(0, 1), match='3'>
# <_sre.SRE_Match object; span=(6, 8), match='ab'>
# <_sre.SRE_Match object; span=(0, 4), match='3457'>
# ['ab', 'dc']
# ['3457', '89ab']
如何拿到search里面match的值
利用group()方法,首先得判断返回值是否是None
res1 = re.search("[a-z,A-Z,0-9]","345789abcd")
if res1 :
print(res1.group())
re匹配语法-match、search和findall的更多相关文章
- python爬虫笔记之re.match匹配,与search、findall区别
为什么re.match匹配不到?re.match匹配规则怎样?(捕一下seo) re.match(pattern, string[, flags]) pattern为匹配规则,即输入正则表达式. st ...
- python(23)re函数:compile、match、search、findall
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python ...
- Python中re的match、search、findall、finditer区别
原文地址: http://blog.csdn.net/djskl/article/details/44357389 这四个方法是从某个字符串中寻找特定子串或判断某个字符串是否符合某个模式的常用方法. ...
- re.match re.search re.findall区别
re正则表达式里面,常用的三种方法的区别. re.macth和search匹配得到的是match对象,findall得到的是一个列表. match从字符串开头开始匹配,search返回与正则表达式匹配 ...
- re正则match、search、findall、finditer函数方法使用
match 匹配string 开头,成功返回Match object, 失败返回None,只匹配一个. search 在string中进行搜索,成功返回Match object, 失败返回None, ...
- python基础-6.1 match search findall group(s) 区别
import re # match findall经常用 # re.match() #从开头匹配,没有匹配到对象就返回NONE # re.search() #浏览全部字符,匹配第一个符合规则的字符串 ...
- re 模块 常用正则表达式符号 最常用的匹配语法
常用正则表达式符号1 '.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^' 匹配字符开头,若指定flags MULTILINE, ...
- python正则表达式--match search方法
1.re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None. (1)函数语法: re.match(pattern, st ...
- EXCEL匹配结果match并跳转链接hyperlink
1,有时候想要搜索另一个表格中含有相同内容的项,然后跳转到搜索结果单元. 需要用到两个函数,MATCH和HYPERLINK 2,A表格如下 B表格如下 3,在B2单元格中输入函数 =HYPERLINK ...
随机推荐
- POJ1077 Eight —— 反向BFS
主页面:http://www.cnblogs.com/DOLFAMINGO/p/7538588.html 代码一:以数组充当队列,利用结构体中的pre追溯上一个状态在数组(队列)中的下标: #incl ...
- 类、对象(java基础知识六)
1.Java约定俗成 java约定俗成 1,类名接口名 一个单词首字母大写,多个单词每个单词首字母都大写 2,方法名和变量名 一个单词全部小写,多个单词从第二个单词首字母大写 建议:如果能用英语尽量用 ...
- Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.st.mapper.UserMapper.userBaseMap
mybatis出现此异常,可能是因为 ***Mapper.xml 文件中存在重名对象,一不小心重复启动了mybatis的逆向工程. 以为会覆盖掉以前生成的,没想到是新生成的和之前生成的重复了 解决:把 ...
- html5--6-6 CSS选择器3
html5--6-6 CSS选择器3 实例 学习要点 掌握常用的CSS选择器 了解不太常用的CSS选择器 什么是选择器 当我们定义一条样式时候,这条样式会作用于网页当中的某些元素,所谓选择器就是样式作 ...
- 通过Toad工具查看dmp里面的表
今天有同事要查看dmp里面的表是否有数据,虽然可以把单表数据通过exp导出查看,但还是稍显有点麻烦,要花时间. 无意中发现toad工具可以直接查看dmp里面的表数据. 第一步:Database--&g ...
- random和string模块
random模块import randomprint(random.random()) #随机打印一个浮点数print(random.randint(1,5)) #随机打印一个整数,包括5print( ...
- skynet源码阅读<6>--线程调度
相比于上节我们提到的协程调度,skynet的线程调度从逻辑流程上来看要简单很多.下面我们就来具体做一分析.首先自然是以skynet_start.c为入口: static void start(int ...
- Opencv实现简易播放器
实现了在MFC中显示图片,再要显示一个视频就是轻而易举的事了,本篇介绍使用Opencv制作一个简易的播放器,实现打开文件.暂停.继续播放.再次播放和总\当前帧数显示功能. 首先还是先看一下界面效果: ...
- sublime text 3 安装vue 语法插件
1.下载https://github.com/vuejs/vue-syntax-highlight,点击这里也可以下载压缩包 2.解压到C:\Users\***\AppData\Roaming\Sub ...
- [SoapUI] Read data from response , use it to update parameter
import com.eviware.soapui.support.GroovyUtils def groovyUtils = new GroovyUtils( context ) def holde ...