Python – 如何仅从中间有逗号的字符串中获取数字

xiaoxingxing python 230

原文标题Python – How to get only the numbers from a string which has got commas in between

考虑一下我有一个字符串:

stringA = "values-are-10,20,30,40,50"
stringB = "values-are-10"

我只需要获取字符串:期望的输出:

for stringA: 10,20,30,40,50
for stringB: 10

我试过用这个-int(''.join(filter(str.isdigit, stringA)))

但它删除了所有逗号,请让我知道如何以该格式获取输出。

原文链接:https://stackoverflow.com//questions/71477638/python-how-to-get-only-the-numbers-from-a-string-which-has-got-commas-in-betwe

回复

我来回复
  • Tim Biegeleisen的头像
    Tim Biegeleisen 评论

    使用re.findall这里是你的朋友:

    stringA = "values-are-10,20,30,40,50"
    stringB = "values-are-10"
    strings = [stringA, stringB]
    output = [re.findall(r'\d+(?:,\d+)*', s)[0] for s in strings]
    print(output)  # ['10,20,30,40,50', '10']
    
    2年前 0条评论
  • kwsp的头像
    kwsp 评论
    [int(v) for v in stringA.rsplit("-", 1)[-1].split(",")]
    

    rsplit从右侧拆分 – 所有数字都出现在最后一个"-"之后。那么我们splitby","

    2年前 0条评论
  • Devesh Shukla的头像
    Devesh Shukla 评论
    # Add regex package
    import re
    
    stringA = "values-are-10,20,30,40,50"
    stringB = "values-are-10"
    #search using regex
    A = re.findall('[0-9]+', stringA)
    print(A) # ['10', '20', '30', '40', '50']
    B = re.findall('[0-9]+', stringB)
    print(B) # ['10']
    2年前 0条评论