import re
from re import findall,search,S secret_code = 'hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse' #.的使用,匹配任意字符,换行符除外
a = 'abc123'
b = re.compile('a...')
c = b.findall(a)
print c #*的使用,匹配前一个字符0次或者多次
a1 = 'abababb123abbbbqjlejl23abbb'
b1 = re.compile('a*b')
c1 = b.findall(a1)
print(c1) #?的使用,匹配前一个字符0次或者1次
a = 'wqebasd123qewea'
b = re.compile('w?e')
c = b.findall(a)
print(c) #.*组合使用,贪婪匹配
b = re.compile('xx.*xx')
c = b.findall(secret_code)
print(c)
#.*?组合使用
b = re.compile('xx.*?xx')
c = b.findall(secret_code)
print(c) #使用括号与不使用括号的差别
b = re.compile('xx(.*?)xx')
c = b.findall(secret_code)
print(c) 输出结果:
['abc1']
['abab', 'abb1', 'abbb', 'abbb']
['e', 'e', 'we']
['xxIxxfasdjifja134xxlovexx23345sdfxxyouxx']
['xxIxx', 'xxlovexx', 'xxyouxx']
['I', 'love', 'you']
import re
#匹配文本中的邮箱
y='123@qq.comaaa@163.combbb@126.comasdfasfs33333@adfcom'
ret = re.findall('\w+@(?:qq|163|126).com',y)
print(ret)
#匹配文本中的时间字符串
time='asfasf1990-07-12asdfAAAbbbb434241' ret1 = re.search(r'(?P<year>19[09]\d)-(?P<month>\d+)-(?P<days>\d+)',time)
print(ret1.group('year'))
print(ret1.group('month'))
print(ret1.group('days'))
#匹配文本中的所有的身份证数字
a='sfafsf,34234234234,1231313132,154785625475896587,sdefgr54184785ds85,4864465asf86845'
ret2=re.findall('\d{18}',a)
print(ret2) #匹配出所有整数
a = '1,-3,3,-5,6,7.3,ad,ae,-98'
ret3 = re.compile(r"'(-?\d+)'")
result = ret3.findall(str(re.split(',',a)))
print(result) 输出结果:
['123@qq.com', 'aaa@163.com', 'bbb@126.com']
1990
07
12
['']
['', '-3', '', '-5', '', '-98']

day20-正则表达式练习的更多相关文章

  1. Python day20正则表达式和re方法

    元字符6个函数以及几个元字符1.'.'通配符2.'^'以什么开头3.'$'以什么结尾4.'*'紧挨着的字符0~∞次5.'+'紧挨着的字符1~∞次6.'?'紧挨的字符0次或1次7.'{}' {0,}== ...

  2. day20:正则表达式

    单个字符的匹配 findall(正则表达式,字符串) 把符合正则表达式的字符串存在列表中返回 预定义字符集(8) \d 匹配数字 \D 匹配非数字 \w 匹配数字字母下划线 \W 匹配非数字或字母或下 ...

  3. day18:正则表达式和re模块

    1,复习递归:返回值,不要只看到return就认为已经返回了,要看返回操作是在递归的第几层发生的,然后返回给了谁,如果不是返回给最外层函数,调用者就接收不到,需要再分析,看如何把结果返回回来,超过最大 ...

  4. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  5. Python高手之路【五】python基础之正则表达式

    下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...

  6. C# 正则表达式大全

    文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...

  7. C#基础篇 - 正则表达式入门

    1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...

  8. JavaScript正则表达式,你真的知道?

    一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...

  9. Python 正则表达式入门(中级篇)

    Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...

  10. 【JS基础】正则表达式

    正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...

随机推荐

  1. Qt5数据库

     对于习惯使用SQL语法的用户,QSqlQuery类提供了直接执行SQL语句并处理返回结果的方法.对于习惯使用较高层数据库接口避免使用SQL语句的用户,QSqlTableModel类和QSqlRela ...

  2. openstack 重启服务命令

    重启openstack的整个服务openstack-service restart 1. 重启dashboardservice httpd restart service memcached rest ...

  3. appium --log-timestamp > appium.log

     appium --log-timestamp > appium.log 

  4. nodejs通过request请求远程url的文件并下载到本地

    需要循环去下载远程文件,然后自己写了一个demo,可以直接运行,如下: //文件下载 var fs = require("fs"); var path = require(&quo ...

  5. 一款好用的取色工具TakeColor

    简介:TakeColor,一款还算好用的取色软件,一个很小很简洁的exe文件,无需安装 使用:打开exe文件后,使用“Alt + C” 组合键即可在鼠标悬停的位置上获取到颜色值,可以获取HTML.RG ...

  6. 自定义广播(BroadcastReceiver)事件 --Android开发

    本例演示自定义广播事件.我们需要做的是,在主活动中写发送广播的代码,然后在接收广播的类中写接收广播的代码. 1.主活动中点击按钮后发送广播 MainActivity.java: public clas ...

  7. C#中读取xml文件指定节点

    目录(?)[-] XmlDocumentSelectSingleNode方法的使用 XmlDocumentSelectNodes方法的使用 通过节点属性查找指定节点   参考:Select XML N ...

  8. java测试感想

    package ATM; public class Account { private String accountID; private String accountname; private St ...

  9. 20170907wdVBA_GetCellsContentToExcel

    'WORD 加载项 代码模板 Dim cmdBar As CommandBar, cmdBtn As CommandBarControl Const cmdBtnCap As String = &qu ...

  10. 小程序用户openid设置放缓存

    wx.setStorageSync('openid', res.data.data.openid),设置     var openid = wx.getStorageSync('openid')获取