import re
1.如果pattern是'匹配':
m = re.match('匹配', '匹配')
print(m.group()) # 匹配
print(repr(m.group())) # 打印\xe5\x8c\xb9\xe9\x85\x8d
這樣看上去沒有什么問題。
2.但是如果pattern是'[匹配]':
m = re.match('[匹配]', '匹配')
print(m.group()) # 打印亂碼,這是為什么呢?不是應該匹配‘匹’字嗎?
print(repr(m.group())) # 打印\xe5
解釋:'[匹配]'被解釋為'[\xe5\x8c\xb9\xe9\x85\x8d]', '匹配'被解釋為'\xe5\x8c\xb9\xe9\x85\x8d',
這是字符串,本質上可以叫做‘字節串’,每個漢字被分成了3個字節,熟悉正則規則的話可以就很容易看出來了,匹配‘\xe5’
是正確的。
解決辦法:是在字符串前添加u,這樣就把字節串轉化成了漢字的unicode碼:"u'\u5339\u914d'",
這樣每個漢字就不會被拆分了(^-^)。