数値変数の正規表現部分を使用したいのですが。
この部分で変数を使用したい場合はどうすればよいですか(?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}')