7

したがって、次の正規表現を使用してテキストを解析し、特定の辞書から情報を取得しています。

re.sub(r'(<Q\d+>)',lambda m: quotes[m.group(1)][1],text)

私がやりたいことは、置き換えるものが別の辞書のキーである場合にのみ置き換えることです。論理的には、次のようになります。

re.sub(r'(<Q\d+>)',lambda m: quotes[m.group(1)][1] if quotes[m.group(1)][1] in d,text)

以下を実行すると、次の構文エラーが発生します。

>>> re.sub(r'(<Q\d+>)',lambda m: quotes[m.group(1)][1] if quotes[m.group(1)][1] in d,text)
  File "<stdin>", line 1
    re.sub(r'(<Q\d+>)',lambda m: quotes[m.group(1)][1] if quotes[m.group(1)][1] in d,text)
                                                                                    ^
SyntaxError: invalid syntax

この方法でのみ交換するにはどうすればよいですか?

4

1 に答える 1