python:从包含多种符号的字符串中提取出中文部分

文章目录

    • 1. 问题描述
    • 2.解决方法
    • 3.正则表达式文章推荐


1. 问题描述

提取出字符串s='21029-李红, 2323_张飞 ,39239张三'中的中文名字部分。

2.解决方法

①初级版:

import re
s='21029-李红, 2323_张飞 ,39239张三'
#首先去除掉字符串s中的,-_和数字
rs=re.split('[,\d_-]',s) 
#此时rs=['', '', '', '', '', '', '李红', ' ', '','', '', '', '张飞 ', '', '', '', '', '', '张三']
#然后去掉rs中的空白项
while '' in rs:
        rs.remove('')
rs.remove(' ') #得到的结果为:['李红', '张飞 ', '张三']

可见,这种方法步骤非常多,麻烦

②精简版:直接利用汉字编码特性

#基本汉字的unicode编码范围为4E00-9FA5
mypattern=re.compile('[\u4e00-\u9fa5]+')
rss=mypattern.findall(s) 

输出rss,结果如下图所示:
在这里插入图片描述

3.正则表达式文章推荐

推荐习悟斋的博文:http://www.360doc.com/content/18/0107/08/36538027_719742219.shtml
网上好的关于正则表达式的博客有很多,大家可以按照自己的喜好食用

你可能感兴趣的:(python语言实战,正则表达式)