133 python拡張-正規表現(元の文字列)

5850 ワード

>>> mm = "c:\\a\\b\\c"
>>> mm
'c:\\a\\b\\c'
>>> print(mm)
c:\a\b\c
>>> print(mm)
c:\a\b\c
>>> re.match("c:\\\\",mm).group()
'c:\\'
>>> ret = re.match("c:\\\\",mm).group()
>>> print(ret)
c:\
>>> ret = re.match("c:\\\\a",mm).group()
>>> print(ret)
c:\a
>>> ret = re.match(r"c:\\a",mm).group()
>>> print(ret)
c:\a
>>> ret = re.match(r"c:\a",mm).group()
Traceback (most recent call last):
  File "", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'
>>>

Pythonの文字列の前にrを付けて原生文字列を表し、
ほとんどのプログラミング言語と同様に、正規表現では"\" が使用され、反スラッシュに悩まされる可能性があります.テキストの文字「」を一致させる必要がある場合は、プログラミング言語で表される正規表現には4つのスラッシュ「」:最初の2つと後の2つがプログラミング言語でスラッシュに変換され、2つのスラッシュに変換された後、正規表現でスラッシュに変換されます.
Pythonのオリジナル文字列はこの問題をよく解決し、オリジナル文字列があれば、反スラッシュを書き漏らしたのではないかと心配する必要はありません.書いた表現もより直感的です.
>>> ret = re.match(r"c:\\a",mm).group()
>>> print(ret)
c:\a