0

数値変数の正規表現部分を使用したいのですが。

この部分で変数を使用したい場合はどうすればよいですか(?P<hh>\d)

入力番号を含む行を出力したい。

4

3 に答える 3

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)
于 2013-02-20T05:18:34.260 に答える
1

文字列補間の使用:

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

変数がまだ整数でない場合は、次のように型を変換する必要があります。

m = re.compile(r'\d{%d}:\d{%d}' % (int(var1), int(var2)))
于 2013-02-20T05:34:58.843 に答える
0

文字列として渡すことができます(最初にエスケープします):

m = re.compile(re.escape(hh) + r':\d{2}')
于 2013-02-20T05:19:02.930 に答える