如何在python正则表达式中使用

时间:2013-02-20 05:15:05

标签: python regex

我想使用数值变量正则表达式部分。

如果我想在此部分使用变量(?P<hh>\d)

,我该怎么办?

我想输出包含输入数字的行。

3 个答案:

答案 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)

使用string interpolation

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}')