【问题标题】:Python - Find a number and then copy it from a stringPython - 查找一个数字,然后从字符串中复制它
【发布时间】:2016-07-30 10:18:14
【问题描述】:

所以我有一个字符串,例如"abdc54sgh",我只需要从字符串中复制 54。问题是数字之前的内容可能会有所不同。 e.j.该字符串可以是"hjsd23jsy""abvt12hbsy" 或任何其他。所以我只需要复制第一个为 23 和第二个为 12 的数字并将其分配给一个变量。

【问题讨论】:

  • 所以你需要跳过非数字而只取后面的数字吗?还是用空字符串替换非数字,这样就只剩下数字了?
  • 完全跳过字符,只取数字
  • 你知道如何检查一个字符是否是数字吗?你知道如何获取字符串中的每个字符吗?

标签: python arrays string


【解决方案1】:

使用正则表达式:

import re
s = "abdc54sgh"
pattern = re.compile("\d+")
pattern.findall(s)

或列表理解和isdigit()

s = "abdc54sgh"
int("".join([x for x in s if x.isdigit()]))

【讨论】:

    【解决方案2】:

    尝试以下方法:

    def takeInt(st):
        return int("".join([ch for ch in st if not ch.isalpha()]))
    

    >>> takeInt("hjsd23jsy")
    23
    >>> takeInt("abvt12hbsy")
    12
    >>> 
    

    【讨论】:

      猜你喜欢
      • 2020-12-21
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-04
      • 1970-01-01
      相关资源
      最近更新 更多