在Python 3中查找字符串中的所有数字

时间:2015-10-20 00:02:55

标签: python string int cal

新手在这里,在网上搜索了几个小时的答案。

string = "44-23+44*4522" # string could be longer

如何将其作为列表,输出为:

[44, 23, 44, 4522]

2 个答案:

答案 0 :(得分:1)

使用AChampion建议的正则表达式,您可以执行以下操作。

string = "44-23+44*4522"
import re
result = re.findall(r'\d+',string)

r'表示原始文本,'\ d'表示十进制字符,+表示一次或多次出现。如果您希望字符串中的浮点不希望被分隔,那么您可能会使用句点“。”进行括号。

re.findall(r'[\d\.]+',string)

答案 1 :(得分:-1)

这里有你的补充功能,解释和详细 由于您是新手,这是一种非常简单的方法,因此可以很容易理解。

def find_numbers(string):
    list = []
    actual = ""
    # For each character of the string
    for i in range(len(string)):
        # If is number
        if "0" <= string[i] <= "9":
            # Add number to actual list entry
            actual += string[i]
        # If not number and the list entry wasn't empty
        elif actual != "":
            list.append(actual);
            actual = "";
    # Check last entry
    if actual != "":
        list.append(actual);
    return list