【问题标题】:Using strip() to clean up a string使用 strip() 清理字符串
【发布时间】:2012-05-25 15:57:59
【问题描述】:

我是 python 新手,我有一个看起来像这样的字符串

Temp = "', '/1412311.2121\n"

我想要的输出只是得到数字和小数本身。所以我正在寻找

1412311.2121 

作为输出.. 试图摆脱字符串中的 ', '/\n .. 我试过 Temp.strip("\n") 和 Temp.rstrip("\n") 试图删除 \n 但我似乎仍然留在我的字符串中。 :/... 有人有什么想法吗?感谢您的帮助。

【问题讨论】:

    标签: python regex string python-3.x


    【解决方案1】:

    字符串是不可变的。 string.strip() 不会改变 string,它是一个返回值的函数。你需要做的:

    Temp = Temp.strip()
    

    另请注意,不带任何参数调用 strip() 会导致它删除所有空白字符,包括 \n

    正如 stalk 所说,您可以通过在 Temp 上调用 strip("',/\n") 来实现您想要的结果。

    【讨论】:

    • 至于条带,Temp = Temp.strip("', /\n") 为上述示例工作
    【解决方案2】:

    如果数据像你显示的那样,用非数字数据从左右包裹数字,你可以使用一个非常简单的正则表达式:

    g = re.search('[0-9.]+', s)  # capture the inner number only
    print g.group(0)
    

    【讨论】:

      【解决方案3】:

      我会使用正则表达式来做到这一点:

      In [8]: s = "', '/1412311.2121\n"
      
      In [9]: re.findall(r'([+-]?\d+(?:\.\d+)?(?:[eE][+-]\d+)?)', s)
      Out[9]: ['1412311.2121']
      

      这将返回在字符串中找到的所有浮点数的列表。

      【讨论】:

      • 他是新来的。可能想要删除解释器的东西,并包括import re。此外,该正则表达式对于新用户来说非常先进。
      猜你喜欢
      • 2012-01-15
      • 2011-11-07
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      相关资源
      最近更新 更多