话不多说,了解下中文编码,我们中国的汉字编码是从/u4e00-/u9fa5,即/u4e00 到 /u9fa5
匹配单个中文,即每个中文都输出用的pattern是 r'[\u4e00-\u9fa5]' , 其中r为转义字符., 举个例子:'12sdw这@F@#年$H$头^&*^%^猪都V#$sad会2b45b5*(上h45y45树3TNYT$%ver' 可以匹配出 ['这', '年', '头', '猪', '都', '会', '上', '树']
代码:
import re
match_obj = re.findall(r'[\u4e00-\u9fa5]','12sdw这@F@#年$H$头^&*^%^猪都V#$sad会2b45b5*(上h45y45树3TNYT$%ver')
print(match_obj)
结果:
D:\python_learning>C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe d:/python_learning/test.py
['这', '年', '头', '猪', '都', '会', '上', '树']
匹配多个连续中文,即把所有中文合并一起输出,对应的pattern 为 r'[\u4e00-\u9fa5]+' ,只比匹配单个中文多了一个 '+ ' , 意思为匹配一个或多个中文。举个例子:'12sdw这@F@#年$H$头^&*^%^猪都V#$sad会2b45b5*(上h45y45树3TNYT$%ver' 可以匹配出 这年头猪都会上树
代码:
import re
match_obj = re.findall(r'[\u4e00-\u9fa5]+','12sdw这@F@#年$H$头^&*^%^猪都V#$sad会2b45b5*(上h45y45树3TNYT$%ver')
print(match_obj)
结果:
D:\python_learning>C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe d:/python_learning/test.py
['这', '年', '头', '猪都', '会', '上', '树']
重点:假如你想输出 '这年头猪都会上树' 也是可以的,上面的match_obj其实都是list类型,通过''.join(match_obj)即可。
代码:
import re
match_obj = re.findall(r'[\u4e00-\u9fa5]','12sdw这@F@#年$H$头^&*^%^猪都V#$sad会2b45b5*(上h45y45树3TNYT$%ver')
print(''.join(match_obj))
同理pattern r'[\u4e00-\u9fa5]+' 也可以
import re
match_obj = re.findall(r'[\u4e00-\u9fa5]+','12sdw这@F@#年$H$头^&*^%^猪都V#$sad会2b45b5*(上h45y45树3TNYT$%ver')
print(''.join(match_obj))
同样都是输出:
D:\python_learning>C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe d:/python_learning/test.py
这年头猪都会上树