我有以下代码:
import re
p = 1
while p < 10 and p>= 1:
p = p+ 1
primer = ("Artículo %so" % (p-1))
ultimo = ("Artículo %so" % (p))
with open("LISR.txt") as ley:
texto_original = ley.read()
fragmento = str(re.findall((r'primer(.*?)ultimo', texto_original, re.DOTALL))
最后一行代码有问题。我想提取名为primer
和ultimo
的两个变量之间的文本。问题是regex将这些单词用作字符串,而不是变量。所以我尝试了以下方法:
fragmento = str(re.findall((r'%s(.*?)%s' % primer, ultimo), texto_original, re.DOTALL))
这会引发以下错误:
TypeError: not enough arguments for format string
我该怎么解决这个问题
解释器不清楚哪些参数指向
findall
,哪些参数用于格式化字符串:从docs(我的重点)
因此,您只需将变量用括号括起来,就像这样,以匹配两个
%s
格式参数相关问题 更多 >
编程相关推荐