python如何正则匹配浮点值_Python正则表达式字符串数组到浮点数组
我是python正则表达式的初学者.我达到了我所需要的,但是由于缺少经验,这真的很丑.我的目标是转换以下形式的字符串数组:
notes = ["10.0% higher", "5.0% lower", "Same as", "21.2% lower"]
到一个float数组,这样上面的数组将产生:
changes = [10.0,-5.0,0,-21.2]
下面的代码实现了这一点,但确实是重复的和糟糕的样式.我该如何优化呢?
changes = []
for note in notes:
m = re.search(r"(?:(\d+\.\d+\%\shigher)|(\d+\.\d+\%\slower)|(Same\sas))", note)
if m:
if m.groups(0):
if m.groups(0)[0]:
changes += [float(re.match(r"(\d+\.\d+)", m.groups(0)[0]).groups(0)[0])]
elif m.groups(0)[1]:
changes += [-float(re.match(r"(\d+\.\d+)", m.groups(0)[1]).groups(0)[0])]
else:
changes += [0.0]
print changes
解决方法:
使用findall可以在单个正则表达式中执行此操作:
notes = ["10.0% higher", "5.0% lower", "Same as", "21.2% lower"]
changes = []
for note in notes:
m = re.findall("(?:(\d+\.\d+)% )?(higher|lower|Same as)", note)
if len(m):
if m[0][1] == 'higher':
changes += [float(m[0][0])]
elif m[0][1] == 'lower':
changes += [-float(m[0][0])]
else:
changes += [0.0]
print changes
标签:python,regex
python如何正则匹配浮点值_Python正则表达式字符串数组到浮点数组相关推荐
- python re正则提取ip地址_python 正则表达式匹配IP地址
一.实验环境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 二.实验目的 从tex ...
- python正则匹配ip地址_Python正则表达式匹配和提取IP地址
Linux No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}.){3 ...
- python re正则提取ip地址_Python正则表达式匹配和提取IP地址
No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}\.){3}[0-9 ...
- python正则匹配ip地址_Python正则表达式匹配ip地址实例
Python正则表达式匹配ip地址实例 更新时间:2014年10月09日 11:22:51 投稿:shichen2014 这篇文章主要介绍了Python正则表达式匹配ip地址实例,通过简单的实例讲述了 ...
- python正则匹配任意字符_Python 正则表达式 匹配任意字符的写法
.(句点)匹配除了换行之外的所有一个字符, .*(点-星)匹配除了换行外的所有字符>>> >>> r=re.compile(r'.*') >>> ...
- python正则匹配ip地址_python 正则表达式匹配IP地址
一.实验环境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 二.实验目的 从tex ...
- python正则匹配任意字符_Python 正则表达式 匹配任意字符
.(句点)匹配除了换行之外的所有一个字符, .*(点-星)匹配除了换行外的所有字符 >>> >>> r=re.compile(r'.*') >>> ...
- python正则匹配空格+数字+空格_详解Python中正则匹配TAB及空格的小技巧
详解Python中正则匹配TAB及空格的小技巧 发布时间:2020-10-15 08:38:48 来源:脚本之家 阅读:94 作者:杰瑞26 在正则中,使用.*可以匹配所有字符,其中.代表除\n外的任 ...
- js replace正则匹配替换多个不同字符串的实现方法
在实际项目开发中,经常会遇到需要替换字符串的情况,简单的使用replace替换指定的一种字符串相信处理起来基本都没啥问题,但遇到一些比较复杂的替换字符串的场景如:需要替换多个不同的字符串,每次正则匹配 ...
最新文章
- 在线作图|2分钟在线绘制三维CCA图
- Request.Browser.Crawler 属性的工作原理分析
- Selenium2+python自动化33-文件上传(send_keys)
- Incption 介绍 mysql_Inception使用详解
- [翻译] GiFHUD
- 整理一波数组去重方法
- 合成器插件Sylenth1 2.2.1绿化版亲测有效
- Transmission搭建BT下载服务器
- 十大BI报表可视化工具
- LabVIEW使用VI Server的时候出现1003错误
- ZeroMemory、memset 和 “={0}” 三者区别
- 记录:remote: You are not allowed to push code to this project...【亲测有效】
- mtk平台的gpio控制
- 项目经理如何让自己更强大,执行力很关键
- SAP_PS常用增强
- 四川翌加:抖音发日常和发作品哪里不一样
- kktv支持鸿蒙系统,康佳发布了一款锤子系统手机 S5内置Smartisan OS
- 阿姨来了58到家竞品分析报告
- 扑克牌游戏java代码_java实现简易扑克牌游戏
- Java波峰波谷最小值问题
热门文章
- 你可能不知道的按位与、或运算技巧
- Newbe.ObjectVisitor 0.2.10 发布,更花里胡哨
- 在 WSL2.0 的 Ubuntu 18 里使用 Docker
- TechEmpower Web 框架性能第19轮测试结果正式发布,ASP.NET Core在主流框架中拔得头筹...
- 还不明白可空类型原理? 我可要挖到底了
- 感谢所有支持wuhan2020项目的朋友!我们招换更多人加入!
- TestinPro应用与DevOps之路
- EF Core中避免贫血模型的三种行之有效的方法(翻译)
- C#中字段、属性、只读、构造函数赋值、反射赋值的相关
- Asp.net Core中SignalR Core预览版的一些新特性前瞻,附源码(消息订阅与发送二进制数据)