python正則表現は、バックスラッシュの動作方法にマッチします。
python正則表現は、アンチスラッシュにマッチします。
正則は、元の文字列を変換されない条件で正則モジュールに渡す必要があります。正則はまた転送します。
rは、rの後の文字列が元の文字列であることを示しており、コンピュータが意味文字として理解することを防止しています。
Python普通文字列に
Pythonでは、いくつかの普通文字を'で変換して、特殊文字にします。
Python原生文字列に
文字列の前に'r'を追加して原生文字列を表します。例えば、r'abc'です。原生文字列の特殊文字の特殊な意味は奪われます。以下の通りです。
Python(reglar express)正規表現では
Python正規表現にはいくつかの違いがあります。正規表現では、いくつかのメタ文字(metacharacter)が指定されています。以下の通りです。
これらはすべて特殊な意味を持っています。''も元の文字に属します。''Pythonの中の特殊な文字であり、正則の中の元の文字でもありますので、気をつけて使ってください。正則では'の役割は何ですか?例を見ます。
正則では、'は元文字をPython文字列文字に変換する役割を果たしていますので、正則の''''は実はPython文字の''で、まだ意味を変えていますので、正則では''をもう一度変換します。つまり''は純粋な文字'にマッチします。次の例を見てください
ここで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文字列と正規表現におけるバックスラッシュ(\')問題の内容は以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。