【正規表現】pythonのreモジュールおよび正スラッシュ/反スラッシュ


第一:エスケープ文字:
既存の文字の意味を変更するには、一般的には反スラッシュを先頭にします.
改行という意味で、アルファベットnは表示されません.
 
第二:pythonでは、反スラッシュ自体がエスケープ文字です.
1、\、1番目のスラッシュはエスケープを表し、2番目のスラッシュはエスケープ文字と見なされなくなったことを意味します.
print('\\')

出力を個別に印刷します.
2、r【rは元の文字の略記:raw string】を1つ加えると、pythonののエスケープ能力が廃棄されることを表す.
print(r'\\')

2つの\バックスラッシュを印刷出力します.
 
第三:pythonのreモジュールは、それ自体がをエスケープ文字として指定します.
pythonから見れば\文字は、実際には反スラッシュにすぎないことを知っているからです.
1、プラスr
test_string='a\\kk\\\\cc'
print(test_string)
u=re.compile(r'\\\\')
z=u.findall(test_string)
print(z)
print(str(*z))

印刷結果:akk\cc['\\']\
pythonは文字をエスケープする必要がありますが、zはリスト形式で、4つの反スラッシュが出力されています.文字列に変換すると印刷で\になります
 
2、rを入れない
import re
test_string='a\\kk\\\\cc'
print(test_string)
u=re.compile('\\\\')
z=u.findall(test_string)
print(z)

印刷結果:akk\cc['\','\','\']
実際には3つのが一致しています.リスト形式が一致しているので、リストを文字列に変換すると、3つのではなく3つのが印刷されます.