Python实现简单文本字符串处理的方法


Posted in Python onJanuary 22, 2018

本文实例讲述了Python实现简单文本字符串处理的方法。分享给大家供大家参考,具体如下:

对于一个文本字符串,可以使用Python的string.split()方法将其切割。下面看看实际运行效果。

mySent = 'This book is the best book on python!'
print mySent.split()

输出:

['This', 'book', 'is', 'the', 'best', 'book', 'on', 'python!']

可以看到,切分的效果不错,但是标点符号也被当成了词,可以使用正则表达式来处理,其中分隔符是除单词、数字外的任意字符串。

import re
reg = re.compile('\\W*')
mySent = 'This book is the best book on python!'
listof = reg.split(mySent)
print listof

输出为:

['This', 'book', 'is', 'the', 'best', 'book', 'on', 'python', '']

现在得到了一系列词组成的词表,但是里面的空字符串需要去掉。

可以计算每个字符串的长度,只返回大于0的字符串。

import re
reg = re.compile('\\W*')
mySent = 'This book is the best book on python!'
listof = reg.split(mySent)
new_list = [tok for tok in listof if len(tok)>0]
print new_list

输出为:

['This', 'book', 'is', 'the', 'best', 'book', 'on', 'python']

最后,发现句子中的第一个字母是大写的。我们需要同一形式,把大写转化为小写。Python内嵌的方法,可以将字符串全部转化为小写(.lower())或大写(.upper())

import re
reg = re.compile('\\W*')
mySent = 'This book is the best book on python!'
listof = reg.split(mySent)
new_list = [tok.lower() for tok in listof if len(tok)>0]
print new_list

输出为:

['this', 'book', 'is', 'the', 'best', 'book', 'on', 'python']

下面来看一封完整的电子邮件:

内容

Hi Peter,

With Jose out of town, do you want to
meet once in a while to keep things
going and do some interesting stuff?

Let me know
Eugene
import re
reg = re.compile('\\W*')
email = open('email.txt').read()
list = reg.split(email)
new_txt = [tok.lower() for tok in list if len(tok)>0]
print new_txt

输出:

['hi', 'peter', 'with', 'jose', 'out', 'of', 'town', 'do', 'you', 'want', 'to', 'meet', 'once', 'in', 'a', 'while', 'to', 'keep', 'things', 'going', 'and', 'do', 'some', 'interesting', 'stuff', 'let', 'me', 'know', 'eugene']

更多关于Python相关内容可查看本站专题:《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
在Python中操作文件之read()方法的使用教程
May 24 Python
Python的for和break循环结构中使用else语句的技巧
May 24 Python
python之cv2与图像的载入、显示和保存实例
Dec 05 Python
Python语言快速上手学习方法
Dec 14 Python
PyQt弹出式对话框的常用方法及标准按钮类型
Feb 27 Python
Python异常原理及异常捕捉实现过程解析
Mar 25 Python
python 连续不等式语法糖实例
Apr 15 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
Apr 24 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
Jun 14 Python
Python3爬虫中Splash的知识总结
Jul 10 Python
Matlab中plot基本用法的具体使用
Jul 17 Python
Pytorch实现图像识别之数字识别(附详细注释)
May 11 Python
Python简单实现控制电脑的方法
Jan 22 #Python
Zookeeper接口kazoo实例解析
Jan 22 #Python
Python调用C语言的方法【基于ctypes模块】
Jan 22 #Python
python的Crypto模块实现AES加密实例代码
Jan 22 #Python
python实现求最长回文子串长度
Jan 22 #Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 #Python
Linux CentOS7下安装python3 的方法
Jan 21 #Python
You might like
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
php 文件缓存函数
2011/10/08 PHP
php用户登录之cookie信息安全分析
2016/05/13 PHP
php简单的上传类分享
2016/05/15 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
javascript权威指南 学习笔记之变量作用域分享
2011/09/28 Javascript
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
apply和call方法定义及apply和call方法的区别
2015/11/15 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
小程序使用watch监听数据变化的方法详解
2019/09/20 Javascript
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
js实现验证码干扰(动态)
2021/02/23 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
[59:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第二局
2016/03/04 DOTA
Python实现二叉堆
2016/02/03 Python
小小聊天室Python代码实现
2016/08/17 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
2018/12/10 Python
如何在python中实现随机选择
2019/11/02 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
十一个高级MySql面试题
2014/10/06 面试题
基层党支部公开承诺书
2014/05/29 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
六年级作文之自救
2019/12/19 职场文书
Java实现注册登录跳转
2022/06/16 Java/Android