一重引用符で始まる文字列に一重引用符を挿入する唯一の方法は、エスケープすることです。したがって、未加工の文字列リテラルと通常の文字列リテラルの両方で、エスケープされていないバックスラッシュの後に引用文字が続く場合、引用文字をエスケープできます。一重 (または二重) 引用符で始まる文字列リテラル内で一重 (または二重) 引用符を表現する方法が必要であるという要件があるため'\'
、生の文字列リテラルまたは通常の文字列リテラルを使用するかどうかにかかわらず、文字列リテラルは正当ではありません。
リテラルのバックスラッシュの数が奇数の任意の文字列を取得するには、通常の文字列リテラルを使用するのが最善の方法だと思います。これは、使用しようとしても機能するためですが、1 つではなく2 つのバックスラッシュr'\\'
を含む文字列が返されるためです。
>>> '\\' # A single literal backslash.
'\\'
>>> len('\\')
1
>>> r'\\' # Two literal backslashes, 2 is even so this is doable with raw.
'\\\\'
>>> len(r'\\')
2
>>> '\\'*3 # Three literal backslashes, only doable with ordinary literals.
'\\\\\\'
>>> len('\\'*3)
3
この回答は、他の回答を補完することのみを目的としています。