繁体   English   中英

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

[英]How to use in python regular expression

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

如果我想在这部分中使用变量,我该怎么办(?P<hh>\\d)

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

你的问题不明确。

如果要捕获正则表达式的某些特定部分,则必须创建组(使用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(r'\d{%d}:\d{%d}' % (var1, var2))

如果变量不是整数,您可能需要转换类型,如下所示:

m = re.compile(r'\d{%d}:\d{%d}' % (int(var1), int(var2)))

你可以把它作为一个字符串传递(我先逃避它):

m = re.compile(re.escape(hh) + r':\d{2}')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM