[英]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.