Python实战之正则表达式RE/re学习笔记及简单练习

时间:2022-08-24 09:33:35
# .,\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. &lbrack;Python &rsqb;小波变化库——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学习笔记&lpar;三&rpar;&colon;简单的Tomcat Web服务器

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

  6. JAVA WEB学习笔记&lpar;三&rpar;&colon;简单的基于Tomcat的Web页面

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

  7. Html学习笔记&lpar;二&rpar; 简单标签

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

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

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

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

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

随机推荐

  1. 第14章 Linux启动管理(1)&lowbar;系统运行级别

    1. CentOS 6.x 启动管理 (1)系统运行级别 ①运行级别 运行级别 含义 0 关机 1 单用户模式,可以想象为Windows的安全模式,主要用于系统修复.(但不是Linux的安全模式) 2 ...

  2. &lbrack;LeetCode&rsqb; Binary Watch 二进制表

    A binary watch has 4 LEDs on the top which represent the hours (0-11), and the 6 LEDs on the bottom ...

  3. 一起学HTML基础-格式与布局fixed&sol;absolute&sol;relative&sol;z-index&sol;float

    很多网页都存在一个悬浮的操作条或者广告区,无论如何上下滚动网页,操作条或广告区都不会动,这个就是div制作,位置锁定在屏幕指定位置,现在我们就学习下网页的格式与布局. position 位置,来给di ...

  4. php里的declare用法

    function tick_handler () { echo "tick_handler() called<br>" ; } function tick_handle ...

  5. postconf 命令常用参数

    postfix的main.cf配置文件一般不直接编辑,而多使用postconf命令来配置‘ postconf -d:查看默认配置: postconf -n:查看当前配置(即当前生效的配置): post ...

  6. poj 3158kickdown

    我是来吐槽poj的!!! 第一次做poj,被题目中的输入输出格式打败了 ,醉了醉了 Description A research laboratory of a world-leading autom ...

  7. SSM学习(一)Mybatis

    Mybatis Notes Mybatis First 创建Maven项目 配置依赖 <dependencies> <dependency> <groupId>ju ...

  8. jetbrains全系列可用例:IDEA、WebStorm、phpstorm、clion等激活到2099

    破解补丁激活 之前看了好多的其它的方法感觉都不是很靠谱还是这个本人亲试可以长期有效不仅能激活pycharm.jetbrains全系列可用例:IDEA.WebStorm.phpstorm.clion等激 ...

  9. 万恶之源 - Python基础知识补充

    编码转换 编码回顾: 1. ASCII : 最早的编码. ⾥⾯有英⽂⼤写字⺟, ⼩写字⺟, 数字, ⼀些特殊字符. 没有中⽂, 8个01代码, 8个bit, 1个byte 2. GBK: 中⽂国标码, ...

  10. Eclipse整合Tomcat开发Dynamic Web Project环境总结

    一.引子 习惯了MyEclipse的你是否曾想过基于Eclipse进行Dynamic Web Project项目开发呢?网上资料颇多,但是实践起来却发现总有这样那样的问题,设计Lucene搜索引擎项目 ...