Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python正規表現のRaw文字列表記とは何ですか?


生の文字列表記

Pythonのドキュメントによると、生の文字列表記(r "text")は、正規表現を意味のある混乱のない状態に保ちます。これがないと、正規表現のすべての円記号('\')の前に別の円記号を付けてエスケープする必要があります。たとえば、次の2行のコードは機能的に同じです-

>>> re.match(r"\W(.)\1\W", " ff ")
<_sre.SRE_Match object; span=(0, 4), match=' ff '>
>>> re.match("\\W(.)\\1\\W", " ff ")
<_sre.SRE_Match object; span=(0, 4), match=' ff '>

文字通りの円記号を一致させたい場合は、正規表現でエスケープする必要があります。生の文字列表記では、これはr"\\"を意味します。生の文字列表記がない場合は、「\\\\」を使用して、次のコード行を機能的に同一にする必要があります-

>>> re.match(r"\\", r"\\")
<_sre.SRE_Match object; span=(0, 1), match='\\'>
>>> re.match("\\\\", r"\\")
<_sre.SRE_Match object; span=(0, 1), match='\\'>

  1. Pythonバイトストリングとは何ですか?

    文字列は文字のシーケンスです。これらは抽象的な概念であり、ディスクに直接保存することはできません。バイト文字列はバイトのシーケンスであり、ディスクに保存できるものです。それらの間のマッピングはエンコーディングです-これらはかなりたくさんあります(そして無限に多くが可能です)-そして、異なるエンコーディングが同じバイトをマッピングする可能性があるため、変換を行うために特定の場合にどちらが適用されるかを知る必要があります別の文字列に。たとえば、同じバイト文字列は、2つの異なるエンコーディングで2つの異なる文字列を表すことができます。たとえば、 >>> b'\xcf\x84

  2. 文字列が英数字かどうかを確認するPython正規表現とは何ですか?

    モジュールの正規表現または正規表現を使用して文字列が英数字のみで構成されているかどうかを確認するには、正規表現 ^ [a-zA-Z0-9] + $を使用してre.match(regex、string)を呼び出すことができます。 たとえば、 >>> bool(re.match('^[a-zA-Z0-9]+$', '789def')) True >>> bool(re.match('^[a-zA-Z0-9]+$', '789#%$def')) False re.matchはオブジェクトを返しま