-1

我有一个名为的文件guidefs.h,其中包含有关项目代码版本的信息。

它在两行之间有#define VERSION_MAJOR 2& #define VERSION_MINOR 1,我想搜索这些单词并将数字 2 和 1 分别获取到变量 MAJOR 和 MINOR。

我进行了广泛的搜索,但最终搜索了这些单词。请让我知道如何搜索这些单词并获取与之相关的数字。

4

3 回答 3

2

您可以使用正则表达式来解决问题。

例如:re.findall(r'#define VERSION_MAJOR (\d+)', text)

看看findall功能

于 2013-05-22T10:33:54.277 回答
2

尝试以下操作:

import re

number_regex = r'#define\s+VERSION_M[AJIN]+OR\s+(\d+)'

with open("guidefs.h") as f:
    your_text = f.read()
    all_numbers = re.findall(number_regex, your_text)
    # This will return ['2', '1']

这适用于您的 MAJOR 和 MINOR 号码。

如果您想要一个整数列表而不是字符串列表,您可以通过添加以下行来使用列表推导:

all_numbers = [int(x) for x in all_numbers]
# This will return [2, 1]
于 2013-05-22T13:08:36.493 回答
1

我做了类似下面的事情,它对我有用。非常感谢所有的答案。

with open("path\to\guidefs.h") as f:
        text=f.read()
        versions=re.findall(r'#define\s+VERSION_M[AJIN]+OR\s+(\d+)',text)
        major_version=versions[0]
        minor_version=versions[1]
print major_version
print minor_version

输出:2 1

于 2013-05-25T07:21:03.100 回答