# .,\w,\s,\d,,^,$
# *,+,?,{n},{n,},{n,m} # re模块用于对python的正则表达式的操作。
#
# 字符:
#
#   . 匹配除换行符以外的任意字符
#   \w 匹配字母或数字或下划线或汉字
#   \s 匹配任意的空白符
#   \d 匹配数字
#   \b 匹配单词的开始或结束
#   ^ 匹配字符串的开始
#   $ 匹配字符串的结束
#
# 次数:
#
#   * 重复零次或更多次
#   + 重复一次或更多次
#   ? 重复零次或一次
#   {n} 重复n次
#   {n,} 重复n次或更多次
#   {n,m} 重复n到m次 import re
# match(pattern, string, flags=0)
# 从起始位置开始根据模型去字符串中匹配指定内容,匹配单个
# 正则表达式
# 要匹配的字符串
# 标志位,用于控制正则表达式的匹配方式
# strings = re.match('\d+','123df45')
# print(strings)
# print(strings.group())
# print(strings.groups())
# <_sre.SRE_Match object; span=(0, 3), match='123'>
# 123
# () #根据模型去字符串中匹配指定内容,匹配单个
# obj = re.search('\d+','u9f34k')
# print(obj)
# print(obj.group())
# <_sre.SRE_Match object; span=(1, 2), match='9'>
# 9 # group和groups
# a = '123abc456'
# print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).group())
# # 123abc456
# print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).groups())
# # ('123', 'abc', '456')
# print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0))
# # 123abc456
# print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1))
# # 123
# print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(2))
# #abc
# print(re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(3))
# #456 # findall(pattern, string, flags=0)
# 上述两中方式均用于匹配单值,即:只能匹配字符串中的一个,如果想要匹配到字符串中所有符合条件的元素,则需要使用 findall。
# a = '123abc567'
# obj = re.findall('\d+',a)
# print(obj)
# print()
# ['123', '567'] # sub(pattern, repl, string, count=0, flags=0)
# 用于替换匹配的字符串 # content = '123abc456'
# new_content = re.sub('\d+','sb',content)
# # sbabcsb
# print(new_content)
# new = re.sub('\d+','xxoo',content,3)
# print(new)
# xxooabcxxoo content = "'1 - 2 * ((60-30+1*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2) )'"
# new_content = re.split('\*',content)
# print(new_content)
# # ["'1 - 2 ", ' ((60-30+1', '(9-2', '5/3+7/3', '99/4', '2998+10', '568/14))-(-4', '3)/(16-3', "2) )'"]
# new_content2 = re.split('\*',content,1)
# print(new_content2)
# # ["'1 - 2 ", " ((60-30+1*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2) )'"]
#
# new_content3 = re.split('\*',content,3)
# print(new_content3)
# # ["'1 - 2 ", ' ((60-30+1', '(9-2', "5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2) )'"] # new_content = re.split('[\+\-\*\/]+',content)
# print(new_content)
# ["'1 ", ' 2 ', ' ((60', '30', '1', '(9', '2', '5', '3', '7', '3', '99', '4', '2998', '10', '568', '14))', '(', '4', '3)', '(16', '3', "2) )'"] # inpp = '1-2*((60-30 +(-40-5)*(9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2))'
# inpp = re.sub('\s*','',inpp)
# print(inpp)
# # 1-2*((60-30+(-40-5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))
#
# new_content = re.split('\(([\+\-\*\/]?\d+[\+\-\*\/]?\d+){1}\)',inpp, 1)
# print(new_content)

Python实战之正则表达式RE/re学习笔记及简单练习的更多相关文章

  1. Python实战之网络编程socket学习笔记及简单练习

    sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0) 参数一:地址簇 socket.AF_INET IPv4(默认) socket.AF_IN ...

  2. Python的dict字典结构操作方法学习笔记

    Python的dict字典结构操作方法学习笔记 这篇文章主要介绍了Python的dict字典结构操作方法学习笔记本,字典的操作是Python入门学习中的基础知识,需要的朋友可以参考下 一.字典的基本方 ...

  3. [Python ]小波变化库——Pywalvets 学习笔记

    [Python ]小波变化库——Pywalvets 学习笔记 2017年03月20日 14:04:35 SNII_629 阅读数:24776 标签: python库pywavelets小波变换 更多 ...

  4. Spark学习笔记0——简单了解和技术架构

    目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...

  5. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  6. JAVA WEB学习笔记(三):简单的基于Tomcat的Web页面

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  7. Html学习笔记(二) 简单标签

    标签的重点 标签的用途 标签在浏览器中的默认样式 <body>标签: 在网页上显示的内容 <p>标签: 添加段落 <hx>标签: 添加标题 标签一共有6个,h1.h ...

  8. Metasploit和python两种安全工具的学习笔记

    Metasploit是个好东西 主要参考了<Metasploit渗透测试魔鬼训练营>这本书. 一.先用自己的靶机感受一下该工具的强大 linux靶机的ip如图 按照书上写的配置,如图 然后 ...

  9. Netty学习笔记(六) 简单的聊天室功能之WebSocket客户端开发实例

    在之前的Netty相关学习笔记中,学习了如何去实现聊天室的服务段,这里我们来实现聊天室的客户端,聊天室的客户端使用的是Html5和WebSocket实现,下面我们继续学习. 创建客户端 接着第五个笔记 ...

随机推荐

  1. 【grunt】两小时入门

    目录: 1. 用途和场景 2.Grunt插件 3.相关资源 4.环境安装 5.开始学习 5.1 一个新项目 5.2 生成package.json 5.3 在项目中安装grunt和相关插件 5.4 Gr ...

  2. hdu 3722 二分图 最优完备匹配 KM算法

    这题只要想到是最优完备匹配就行了: 题意:给出n个字符串,若两两相连,将前一个反置添加到后一个后面,相连的值为两个字串从头开始相等的字符个数: 问如何匹配得出最大值: 思路:建图,套模板. 代码: # ...

  3. poj 2063完全背包

    题意:给出总资金和投资年份 ,n个股票 给出股票价格和其一年的利润.问如何选择能获得最大利润. 思路:股票可以重复选择,完全背包问题,完全背包也是从01背包衍生而行的,其主要区别在于中间那层循环的次序 ...

  4. poj3463 最短路和比最短路长1的路径数

    这题需要很好的理解Dij. 在Dij的基础上,每个点多一个次短路的长度和数量进行控制. 那么在队列中,最短路控制时出现n次,次短路控制出现n次.注意松弛条件中val值和最短路.次短路的关系. 这题需要 ...

  5. 【Alpha】——Sixth Scrum Meeting

    一.今日站立式会议照片 二.每个人的工作 成员 昨天已完成的工作 今天计划完成的工作 李永豪 对统计出现的问题进一步完善 学习将项目做成APK 郑靖涛 完善报表设计 协助设计账目一览表板块 杨海亮 测 ...

  6. 团队作业4——第一次项目冲刺(Alpha版本)6th day

    一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 24点的游戏输入是点击我们给的图片然后会输入相应的数字,之前的所做的出 现了一点问题,在把数字删掉重新输入就不行,这个问题仍然 ...

  7. 201521123039 《java程序设计》第七周学习总结

    1. 本周学习总结 2. 书面作业 ArrayList代码分析 1.1 解释ArrayList的contains源代码 答:ArrayList的Contains的源码如上图所示,如果o为null,那么 ...

  8. 201521123113《Java程序设计》第7周学习总结

    1. 本周学习总结 2. 书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 contains源代码: public boolean contains( ...

  9. 201521123062《Java程序设计》第4周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 多态定义:同种形态不同定义 类注释格式 继承,共同行为及属性 在instanceof检查过后 ...

  10. How To:禁用ubuntu全局菜单(global menu)的方法

    刚从windows转过来的新手可用会觉得ubuntu unity下的全局菜单(global menu)用起来很不方便.下边是介绍去除全局菜单的方法 1.打开终端(可以去dash主页里面搜,也可以直接按 ...