Python实战之正则表达式RE/re学习笔记及简单练习
# .,\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学习笔记及简单练习的更多相关文章
- Python实战之网络编程socket学习笔记及简单练习
sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0) 参数一:地址簇 socket.AF_INET IPv4(默认) socket.AF_IN ...
- Python的dict字典结构操作方法学习笔记
Python的dict字典结构操作方法学习笔记 这篇文章主要介绍了Python的dict字典结构操作方法学习笔记本,字典的操作是Python入门学习中的基础知识,需要的朋友可以参考下 一.字典的基本方 ...
- [Python ]小波变化库——Pywalvets 学习笔记
[Python ]小波变化库——Pywalvets 学习笔记 2017年03月20日 14:04:35 SNII_629 阅读数:24776 标签: python库pywavelets小波变换 更多 ...
- Spark学习笔记0——简单了解和技术架构
目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- JAVA WEB学习笔记(三):简单的基于Tomcat的Web页面
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- Html学习笔记(二) 简单标签
标签的重点 标签的用途 标签在浏览器中的默认样式 <body>标签: 在网页上显示的内容 <p>标签: 添加段落 <hx>标签: 添加标题 标签一共有6个,h1.h ...
- Metasploit和python两种安全工具的学习笔记
Metasploit是个好东西 主要参考了<Metasploit渗透测试魔鬼训练营>这本书. 一.先用自己的靶机感受一下该工具的强大 linux靶机的ip如图 按照书上写的配置,如图 然后 ...
- Netty学习笔记(六) 简单的聊天室功能之WebSocket客户端开发实例
在之前的Netty相关学习笔记中,学习了如何去实现聊天室的服务段,这里我们来实现聊天室的客户端,聊天室的客户端使用的是Html5和WebSocket实现,下面我们继续学习. 创建客户端 接着第五个笔记 ...
随机推荐
- 南昌招聘.net开发大牛
职位诱惑: 12年名企5险1金齐全+WEB&移动研发=丰厚回报 职位描述: 聘精通web开发成员共同成就事业! 中国领先的WEB内核 研发机构.华中地区唯一自主CMS研发厂商.江西最大的网站服 ...
- chrome开发工具指南(五)
Main Menu Click More to open the Main Menu. Settings To open Settings, do one of the following: Pre ...
- Run Logic
1.lr_output_message()函数,其作用是将内容输出到Replay Log中: 如果输出整数型内容,应该这样写; int x; x=10; lr_output_message(" ...
- asp.net core 2.0 web api基于JWT自定义策略授权
JWT(json web token)是一种基于json的身份验证机制,流程如下: 通过登录,来获取Token,再在之后每次请求的Header中追加Authorization为Token的凭据,服务端 ...
- [转载]GIF、JPEG 和 PNG的区别在哪里?
原文地址:GIF.JPEG 和 PNG的区别在哪里?作者:苗得雨 GIF.JPEG 和 PNG 是三种最常见的图片格式. GIF:1987 年诞生,常用于网页动画,使用无损压缩,支持 256 种颜色( ...
- PHP面向对象知识点
public private protected __construct() __destruct() __set() __get() extends(继承) :: (重载) abstract cla ...
- 201521123022 《Java程序设计》 第十二周学习总结
1. 本周学习总结 2. 书面作业 Q1.将Student对象(属性:int id, String name,int age,double grade)写入文件student.data.从文件读出显示 ...
- C#中if_else以及for循环的简单理解
if_else语句的语法: if(判断条件) { 执行语句 }else { 执行语句 } 判断条件位true执行if大括号的语句,false执行else大括号的语句. if_else的扩展: 连续判断 ...
- 【干货】教你如何利用fullPage.js以及move.js插件打造高端大气的网站效果!
前言: 如今我们经常能见到全屏网站,尤其是国外网站.这些网站用几幅很大的图片或色块做背景,再添加一些简单的内容,显得格外的高端大气上档次. 在学习过jQuery插件之后,才发现之前的很多网站特效完全可 ...
- Eclipse-远程调试服务器代码
1, 将应用部署到服务器上可以正常启动 2, 在Eclipse中,有相同的项目(程序) 3, 项目右键(ops-web)-->Debug as --> Debug Configuratio ...