从文本文件中获取特定的整数?

时间:2017-02-05 16:43:21

标签: python regex python-3.x

我有一个问题。 我试图从文本文件中获取一个特定的整数。

文本文件较大,但其中一部分包含:

class="checkbox" name="reports[]" id="reports_43440"

现在,我对“reports_”旁边的整数感兴趣,每次都不同。

如何从文本文件中获取该特定整数?

我试过这个,但我无法让它发挥作用。

filereader = myFile.read()
reportid = re.findall(r'"([^"]*)"', filereader)

问题是,它返回文本文件中括号内的所有内容。我想只得到那个特定的整数。

3 个答案:

答案 0 :(得分:1)

让您拥有一个名为test.txt的文本文件,其中包含以下内容:

class="checkbox" name="reports[]" id="reports_12343440"
class="checkbox" name="reports[]" id="reports_4342340"
class="checkbox" name="reports[]" id="reports_4344430"
class="checkbox" name="reports[]" id="reports_4344130"
class="checkbox" name="reports[]" id="reports_434410"
class="checkbox" name="reports[]" id="reports_434403"

现在,您可以使用正则表达式获取reports_的id值,如下所示:

import re
myFile = open("test.txt","r")
filereader = myFile.read()
regex = r"reports_([\d]+)"
reportid = re.findall(regex, filereader)
for id in reportid:
    print(id)

代码段的输出是:

12343440
4342340
4344430
4344130
434410
434403

我在这里搜索了与reports_匹配的内容。您可以根据需要进行自定义。

答案 1 :(得分:0)

此代码应解决您的问题:

input = 'class="checkbox" name="reports[]" id="reports_43440"'

results = re.findall(r'"reports\_([^"]+?)"', input)
print results

答案 2 :(得分:0)

使用https://www.example.com/upload/default-food-image.png函数的简单解决方案(如果它应该获得单个整数值):

str = 'class="checkbox" name="reports[]" id="reports_43440"'
report_id = re.search(r'id="reports_(\d+)"', str).group(1)

print(report_id)

输出:

43440