首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中只查找有多个字符串的整数值

在python中只查找有多个字符串的整数值
EN

Stack Overflow用户
提问于 2018-03-30 04:08:28
回答 2查看 69关注 0票数 0

我有下面的python代码,我用它来获取JIRA问题的组件名称,其中一些是组件字段中的单值,一些是组件字段中的多值。我的问题是组件字段可能有不同名称的值,例如R ABC 1.1,R Aiapara 2.3A1(Active)等,我不想在下面的code.Is中尝试这样做,因为我只能从组件中找到整数值。对于这个组件(R ABC 1.1),我需要1.1,对于第二个组件(R Aiapara 2.3A1(活动)),我也需要2.3,因此我不需要依赖于组件的名称

代码语言:javascript
复制
  for version in issue["fields"]["components"]:
    cacheData = json.dumps(version)
    jsonToPython = json.loads(cacheData)
    if jsonToPython['name'][:10] == "R Aiapara ": 
      allModules.append(jsonToPython["name"][10:])
      print allModules  

下面是我得到的输出

代码语言:javascript
复制
Retrieving list of issues
Processing SPTN-2
[u'1.6']
Processing SPTN-1
[u'1.5']
[u'1.5', u'1.6']
EN

回答 2

Stack Overflow用户

发布于 2018-03-30 04:25:52

使用正则表达式:

代码语言:javascript
复制
import re
s1 = "R ABC 4.4"
s2 = "R Ciapara 4.4A1(Active)"

print(re.findall(r"\d+\.\d+", s1))
print(re.findall(r"\d+\.\d+", s2))

输出:

代码语言:javascript
复制
['4.4']
['4.4']
票数 3
EN

Stack Overflow用户

发布于 2018-03-30 04:35:22

我觉得我不太理解你的问题,所以我会尽我所能回答,但如果我有任何错误,请随时纠正我。

此函数将从列表中的字符串中获取所有数字:

代码语言:javascript
复制
def getNumber(string):
    numbers = ".0123456789"
    result = []
    isNumber = False
    for i in string:
        if (i in numbers and isNumber):
            result[-1] += i
        elif i in result:
            result+= [i]
            isNumber = True
        else:
            isNumber = False

    return result

但是,如果您想要第一个数字之后的所有字符,那么您将需要此函数。它将返回第一个数字之后的所有内容,如果第一个数字中没有数字,则返回False。

代码语言:javascript
复制
def getNumber(string):
    numbers = ".0123456789"
    result = []
    isNumber = False
    for i,char in enumerate(string):
        if char in numbers:
            return string[i:]
    return False

现在,如果您想要第一个和最后一个数字之间的所有内容,请尝试以下代码:

代码语言:javascript
复制
def getNumber(string):
    numbers = ".0123456789"
    result = string
    isNumber = False
    for i,char in enumerate(string):
        if char in numbers:
            result = result[i:]
            break
    for i in range(len(result)-1, 0, -1):
        if result[i] in numbers:
            result = result[:i+1]
            break

    return result

希望这能有所帮助:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49564238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档