微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python:从字符串中提取数字,例如日期,分数,百分比等

我想确定字符串中所有类型的数字.
例:

a = 'I 0.34 -345 3/4 3% want to  get -0.34 2018-09 all numbers'

结果:

['I', '_num', '_num', '_num', '_num', 'want', 'to', 'get', '_num', '_num', 'all', 'numbers']

这是一个nlp项目,我想知道是否有更好的方法来获得结果.
我可以列出所有类型,然后使用正则表达式,但这并不简洁,有人有好主意吗?

解决方法:

这里的列表理解非常简洁:

a = 'I 0.34 -345 3/4 3% want to  get -0.34 2018-09 all numbers'
pattern = re.compile('\d')
result = ['_num' if re.search(pattern, word) else word for word in re.compile(' +').split(a)]

如果输入中的双精度空格(想要得到)是一个错字,那么您可以单独在一个空格上拆分,而不必使用正则表达式:

pattern = re.compile('\d')
result = ['_num' if re.search(pattern, word) else word for word in a.split(' ')]

结果:

['I', '_num', '_num', '_num', '_num', 'want', 'to', 'get', '_num', '_num', 'all', 'numbers']

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐