tips & tricks (2)

1. GBK与UTF-8字节长度
中文: GBK两字节,UTF-8三字节
英文: GBK单字节,UTF-8单字节,都使用ASCII码存储
GBK根据最高位来判断中英文,如果是1表示中文,0表示英文使用ASCII解码
UTF-8是unicode一种可变长度编码表达方式,第一个字节编码兼容ASCII码

2. 正则匹配全部字符
".*"无法匹配包括换行的"\n","."不包括换行

import re

text = "Hello World!\nHappy New Year!"  
re.match(r"[\S\s]+Happy", text)    #匹配成功  
re.match(r".*Happy", text)    #匹配失败