python正則表現は、バックスラッシュの動作方法にマッチします。


python正則表現は、アンチスラッシュにマッチします。
正則は、元の文字列を変換されない条件で正則モジュールに渡す必要があります。正則はまた転送します。
rは、rの後の文字列が元の文字列であることを示しており、コンピュータが意味文字として理解することを防止しています。r'^\\$'は、最初に元の文字列によってcomple関数に与え、正則はr'^\\$' \を\に訳します。

backslash='\\'
print(backslash)
regular_backslash=re.compile(r'^\\$')
print(regular_backslash.search(regular_backslash)
金額5.00の.\.を使ってマッチングします。正則では.がすべての文字にマッチするので、点を示す\.が必要です。

import re
#    
date_regular = re.compile(r'^(\d{4})-(\d{2})-(\d{2})$')
print(date_regular.search('2017-33-12'))

#        5 5.00    
money_regular = re.compile(r'^(\d{1,})\.(\d{1,})$|^(\d{1,})$')
print(money_regular.match('5.8'))

#     
number_regular = re.compile(r'^\d{1,}$')
print(number_regular.search('5'))
PS:Python文字列と正規表現のバックスラッシュ(\')問題を見ます。
Python普通文字列に
Pythonでは、いくつかの普通文字を'で変換して、特殊文字にします。

In [1]: print('abc
def') # '
' abc defg In [2]: print('abc\tdef') # '\t' abc defg
特殊文字を''で変換して、普通の文字にします。

In [3]: print('abc\\tdef') #  '\'         ,      
abc\tdef

In [4]: print('abc\'tdef') #  '''         ,           '''         
abc'tde
したがって、python普通の文字列では、奇数の''で終わることはできません。このようにすると、最後の引用符は純粋な文字に変換され、この文字列は引用符なしで終わることになります。
Python原生文字列に
文字列の前に'r'を追加して原生文字列を表します。例えば、r'abc'です。原生文字列の特殊文字の特殊な意味は奪われます。以下の通りです。

In [5]: print(r'abc
defg') # '
' , abc
defg In [6]: print(r'abc\tdefg') # '\t' , abc\tdef
ここには不思議な問題があります。原生文字列では'が普通の文字列になっていますが、私たちは同様に奇数の'文字列で終わることができません。これはPython正規表現の原因であり、正規表現ではこの問題を説明します。
Python(reglar express)正規表現では
Python正規表現にはいくつかの違いがあります。正規表現では、いくつかのメタ文字(metacharacter)が指定されています。以下の通りです。
これらはすべて特殊な意味を持っています。''も元の文字に属します。''Pythonの中の特殊な文字であり、正則の中の元の文字でもありますので、気をつけて使ってください。正則では'の役割は何ですか?例を見ます。

In [7]: re.search('.', 'sd.f')        
Out[7]: <_sre.SRE_Match object; span=(0, 1), match='s'>

In [8]: re.search('\.', 'sd.f')       
Out[8]: <_sre.SRE_Match object; span=(2, 3), match='.'>In [9]: re.search('
', 'sdfd
fds') Out[9]: <_sre.SRE_Match object; span=(4, 5), match='
'> """ '.' , , '\' , , '.'; '\' Python 。 """
したがって、'の役割は、元の文字の特殊な意味を剥奪して、Python文字にします。だから、Python普通の文字列の中での変換作用を持っています。たとえば'は依然として改行を表しています。したがって、''は正則の1つの元の文字であり、Pythonの中の1つの特殊な文字です。では、純粋な文字''にどうやってマッチしますか?
正則では、'は元文字をPython文字列文字に変換する役割を果たしていますので、正則の''''は実はPython文字の''で、まだ意味を変えていますので、正則では''をもう一度変換します。つまり''は純粋な文字'にマッチします。次の例を見てください

In [10]: re.search('\\\\', 'fsd
fds') # '\', In [11]: re.search('\\\\', 'fsd\
fds') Out[11]: <_sre.SRE_Match object; span=(3, 4), match='\\'> # Python ,'\\' '\'
REで'''を繰り返し使用すると、多くの連続的なバックスラッシュが発生し、一部の文字列が理解できなくなる可能性があります。解決策はPython元の文字列で正規表現を書くことです。

In [12]: re.search(r'\\', 'fsd\
fds') # '\\' '\' Out[12]: <_sre.SRE_Match object; span=(3, 4), match='\\'>
また、正規表現を原生文字列で書くと、Python文字の特殊文字は有効です。

In [13]: re.search(r'
', 'fsd
fds') Out[13]: <_sre.SRE_Match object; span=(3, 4), match='
'> """ Python ,r'
' '
', ; ,r'
' 。 '\' , , 。 , Python , '\' 。 """
締め括りをつける
ここでPython文字列と正規表現におけるバックスラッシュ(\')問題に関する記事を紹介します。Python文字列と正規表現におけるバックスラッシュ(\')問題の内容は以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。