python - 如何匹配字符串中的信息

标签 python search string

我有一个带有版本号的字符串。我想从这段代码中读取版本号,这样我就可以将它与我正在使用的其他代码进行比较。我在下面完成了代码,但无法正常工作,有人能看出问题所在吗?

print results

    r = re.compile(r'(version\s*\s*)(\S+)') 

    for l in results: 
        m1 = r.match(l) 
        if m1: 
            ID=map(int,m1.group(2).split("."))  
            l = r.sub(r'\g<1>' + '.'.join(['%s' % (v) for v in ID]), l)
            print ID

结果变量是:

Name Info Type Call version 1.0.40.437 Fri Oct  2 10:54:35 BST 2009

我这样做是因为我需要将 ID 中的数字分成几组,因为我需要将 ID 中的第三个数字与另一个文件中 ID 中的第三个数字进行比较。

下面的答案很有用,但我的方法是读取文件并取出所有数字并将它们放入列表中,因此我所要做的就是比较列表中的两个数字。抱歉,如果问题不清楚,但我不希望版本号是一个字符串。

好的,我对下面回答的代码进行了一些更改。代码如下:

    version = re.compile('version\s+([\d.]+)\s+') 
    ID = version.search(results) 
    if ID: 
        value = ID.group(1).split('.')[2]

    self.assertEqual(BUILD_ID[2], int(value))

这不会创建我想要的列表,但它允许我比较这 2 个值。

感谢所有的帮助。

最佳答案

为什么要使用正则表达式?我应该使用 split(' ') 并在 'version' 旁边使用 value,或者更简单:

print results.split(' ')[5]

如果你必须使用正则表达式,那么试试:

rx = re.compile('version\s+([\d.]+)\s+')
rxx = rx.search(results)
if rxx:
    print rxx.group(1)

关于python - 如何匹配字符串中的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2191202/

相关文章:

python - 模拟 with 语句中使用的类

python - 如何通过 Boost.Python 从 python 文件导入函数

javascript - 如何从随机数组对象创建关联数组?

linux - 如何使用linux命令列出包含特定字符串的文件

javascript - 通过用标签替换 '` ' 来包装某些单词

python - 有序字典 python 替换键值

python - 如何使用 requests_mock 来确保调用正确的 session ?

rest - 在搜索结果的 RESTful HTTP 请求中,如果没有结果,我应该返回空数组还是 404 错误代码?

php - 多字节 strtr() -> mb_strtr()

c# - 如何将字节数组(MD5 哈希)转换为字符串(36 个字符)?