Spongebob�
2021-07-29 16:03
采纳率: 100%
浏览 28
已结题

关于python正则表达式问题(带科学记数的)

3.6554015e-09 1.4488598e-09 1
3.65 9.86 1.0

现在假设有两行数据对于这种带e的浮点数怎么用python的正则表达式匹配啊?

  • 收藏

2条回答 默认 最新

  • 已采纳

    你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

    import re
    
    s = '''3.6554015e-09 1.4488598e-09 1
    3.65 9.86 1.0'''
    
    li = re.findall(r'\b[\+\-]?\d+(?:\.\d+)?(?:[Ee][\+\-]?\d+)?\b',s)
    print(li)
    

    结果

    ['3.6554015e-09', '1.4488598e-09', '1', '3.65', '9.86', '1.0']
    
    已采纳该答案
    打赏 评论
  • 八云黧 2021-07-29 16:08

    为什么要用正则?如果一个字符串可以被转换成float,并且串里面包含字符e不就满足条件了吗
    如果非要用正则也可以,就这么写r'^[+-]?[\d]+([\.][\d]+)?([Ee][+-]?[\d]+)?$'

    1 打赏 评论

相关推荐 更多相似问题