ホームページ  >  記事  >  バックエンド開発  >  Python の正規表現で接頭辞 \'r\' を使用する必要があるのはどのような場合ですか?

Python の正規表現で接頭辞 \'r\' を使用する必要があるのはどのような場合ですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-19 17:07:02362ブラウズ

When Should You Use the 'r' Prefix in Python Regular Expressions?

Python 正規表現 - r 接頭辞

Python の正規表現モジュールは、次の文字列であることを示す r 接頭辞をサポートしています。生の文字列として扱う必要があります。これは、r プレフィックスにより Python がバックスラッシュ文字をエスケープ文字として解釈するのを防ぐため、エスケープ シーケンスを使用する場合に特に便利です。

ただし、r プレフィックスは必ずしも必要というわけではありません。たとえば、Python で無効なエスケープ シーケンスは、r プレフィックスが使用されていない場合でも、エスケープ シーケンスとして解釈されます。たとえば、最初の例では:

import re
print (re.sub('\s+', ' ', 'hello     there      there'))

正規表現パターン ' ' は 1 つ以上の空白文字と一致します。この場合、バックスラッシュ文字がエスケープ文字として使用されていないため (一致する文字の範囲を定義しているだけです)、r プレフィックスは必要ありません。

ただし、r プレフィックスが必要です。たとえば、2 番目の例では:

import re
print (re.sub(r'(\b\w+)(\s+\b)+', r'', 'hello     there      there'))
正規表現パターン r'(bw )(s 1b) ' は、スペースを挟んで少なくとも 1 回繰り返される単語と一致します。この場合、バックスラッシュ文字が単語の境界を定義するエスケープ文字として使用されているため、

r 接頭辞が必要です。

最後に、

r 接頭辞です。生の文字列が使用されている場合、必ずしも必要というわけではありません。たとえば、3 番目の例は 2 番目の例と同等です。

import re
print (re.sub('(\b\w+)(\s+\b)+', '', 'hello     there      there'))
この場合、

r プレフィックスは使用されませんが、正規表現パターンは引き続き正規表現パターンとして扱われます。生の文字列。これは、文字列リテラル全体が一重引用符で囲まれており、Python では生の文字列であることを示すためです。

結論として、

r プレフィックスは必ずしも必要ではありませんが、使用する場合には使用することをお勧めします。 Python で有効なエスケープ シーケンス。

以上がPython の正規表現で接頭辞 \'r\' を使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。