我想使用数字变量正则表达式部分。
如果我想在这部分使用变量,我应该怎么做(?P<hh>\d)
我想输出包含输入数字的行。
使用字符串插值:
m = re.compile(r'\d{%d}:\d{%d}' % (var1, var2))
如果变量不是整数,您可能需要像这样转换类型:
m = re.compile(r'\d{%d}:\d{%d}' % (int(var1), int(var2)))
你的问题不清楚。
如果要捕获regex 的某些特定部分,则必须创建组(使用 pharentesis):
hh = sys.argv[1]
m = re.compile(r'(?P<hh>\d):(\d{2})')
match = m.match(hh)
print match.group(1)
print match.group(2)
例如,如果hh = '1:23'
,上面的代码将打印:
1
23
现在,如果您需要用某个变量替换\d{2}
,您可以执行以下操作:
variable = r'\d{2}'
m = re.compile(r'(?P<hh>\d):%s' % variable)
或者,如果您只想替换2
,您可以执行以下操作:
variable = '2'
m = re.compile(r'(?P<hh>\d):\d{%s}' % variable)
另一种选择可能是使用:
r'(?P<hh>\d):{0}'.format(variable)
您可以将其作为字符串传递(我会先将其转义):
m = re.compile(re.escape(hh) + r':\d{2}')