1

次のコードは明らかに冗長ですが、私の経験では、このパターンをかなり頻繁に使用しています。Pythonでこれを行うためのより良い方法はありますか?

if re.search("at (\d{1,2}):\d{2}", p):
    a=re.search("at (\d{1,2}):\d{2}",p).group(1)
4

2 に答える 2

6

はい、冗長です。search()変数を 2 回呼び出すのではなく、結果を変数に代入する必要があります。

m = re.search("at (\d{1,2}):\d{2}", p)

if m:
    a = m.group(1)

または多分

a = m.group(1) if m else some_default_value

re.compile()また、このパターンを頻繁に使用する場合は、正規表現をプリコンパイルするために使用することを検討してください。

于 2013-09-05T00:13:47.220 に答える
1

最初の検索を保存し、ブール値の意味を確認します。

res = re.search (...)
if res:
   a = res.group (1)
于 2013-09-05T00:15:47.730 に答える