Python 在两个定义的变量之间提取文本
我有以下代码:Python 在两个定义的变量之间提取文本,python,Python,我有以下代码: 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'p
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))
这会引发以下错误:
TypeError: not enough arguments for format string
我应该如何解决这个问题?解释器不清楚哪些参数会转到findall,哪些参数将用于格式化字符串:
fragmento = str(re.findall((r'%s(.*?)%s' % (primer, ultimo)), texto_original, re.DOTALL))
从重点矿
若格式需要单个参数,则值可以是单个非元组对象。[5] 否则,值必须是具有格式字符串指定的项数的元组,或者是单个映射对象(例如,字典)
因此,您只需像这样将变量用括号括起来,以匹配两个%s格式参数
(r'%s(.*?)%s' % ( primer, ultimo ) )
^ ^
(r'%s(.*?)%s' % ( primer, ultimo ) )
^ ^