我想使用数值变量正则表达式部分。
如果我想在此部分使用变量(?P<hh>\d)
我想输出包含输入数字的行。
答案 0 :(得分:1)
你的问题不明确。
如果要捕获正则表达式的某些特定部分,则必须创建组(使用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)
答案 1 :(得分:1)
m = re.compile(r'\d{%d}:\d{%d}' % (var1, var2))
如果变量不是整数,则可能需要转换类型:
m = re.compile(r'\d{%d}:\d{%d}' % (int(var1), int(var2)))
答案 2 :(得分:0)
您可以将其作为字符串传递(我先将其转义):
m = re.compile(re.escape(hh) + r':\d{2}')