python如何去除字符串中不想要的字符


Posted in Python onJuly 05, 2020

问题:

过滤用户输入中前后多余的空白字符

‘    ++++abc123---    ‘

过滤某windows下编辑文本中的'\r':

‘hello world \r\n'

去掉文本中unicode组合字符,音调

"Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng"

如何解决以上问题?

去掉两端字符串: strip(), rstrip(),lstrip()

#!/usr/bin/python3
 
s = ' -----abc123++++ '
 
# 删除两边空字符
print(s.strip())
 
# 删除左边空字符
print(s.rstrip())
 
# 删除右边空字符
print(s.lstrip())
 
# 删除两边 - + 和空字符
print(s.strip().strip('-+'))

删除单个固定位置字符: 切片 + 拼接

#!/usr/bin/python3
 
s = 'abc:123'
# 字符串拼接方式去除冒号
new_s = s[:3] + s[4:]
print(new_s)

删除任意位置字符同时删除多种不同字符:replace(), re.sub()

#!/usr/bin/python3
 
# 去除字符串中相同的字符
s = '\tabc\t123\tisk'
print(s.replace('\t', ''))
 
 
import re
# 去除\r\n\t字符
s = '\r\nabc\t123\nxyz'
print(re.sub('[\r\n\t]', '', s))

同时删除多种不同字符:translate()        py3中为str.maketrans()做映射

#!/usr/bin/python3
 
s = 'abc123xyz'
# a _> x, b_> y, c_> z,字符映射加密
print(str.maketrans('abcxyz', 'xyzabc'))
# translate把其转换成字符串
print(s.translate(str.maketrans('abcxyz', 'xyzabc')))

去掉unicode字符中音调

#!/usr/bin/python3
 
import sys
import unicodedata
s = "Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng"
remap = {
 # ord返回ascii值
 ord('\t'): '',
 ord('\f'): '',
 ord('\r'): None
 }
# 去除\t, \f, \r
a = s.translate(remap)
'''
通过使用dict.fromkeys() 方法构造一个字典,每个Unicode 和音符作为键,对于的值全部为None

然后使用unicodedata.normalize() 将原始输入标准化为分解形式字符

sys.maxunicode : 给出最大Unicode代码点的值的整数,即1114111(十六进制的0x10FFFF)。

unicodedata.combining:将分配给字符chr的规范组合类作为整数返回。 如果未定义组合类,则返回0。
'''
cmb_chrs = dict.fromkeys(c for c in range(sys.maxunicode) if unicodedata.combining(chr(c))) #此部分建议拆分开来理解
b = unicodedata.normalize('NFD', a)
'''

 调用translate 函数删除所有重音符
'''
print(b.translate(cmb_chrs))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python Django批量导入不重复数据
Mar 25 Python
python中字符串类型json操作的注意事项
May 02 Python
Python Nose框架编写测试用例方法
Oct 26 Python
Python基于列表list实现的CRUD操作功能示例
Jan 05 Python
flask框架路由常用定义方式总结
Jul 23 Python
Python函数装饰器原理与用法详解
Aug 16 Python
python opencv实现证件照换底功能
Aug 19 Python
Python二元赋值实用技巧解析
Oct 25 Python
wxpython多线程防假死与线程间传递消息实例详解
Dec 13 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 Python
keras中的backend.clip用法
May 22 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
Jun 30 Python
python删除某个字符
Mar 19 #Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
Mar 19 #Python
Python3 replace()函数使用方法
Mar 19 #Python
python将文本中的空格替换为换行的方法
Mar 19 #Python
python去掉空白行的多种实现代码
Mar 19 #Python
python奇偶行分开存储实现代码
Mar 19 #Python
Python实现的将文件每一列写入列表功能示例【测试可用】
Mar 19 #Python
You might like
PHP的魔术常量__METHOD__简介
2014/07/08 PHP
自动更新作用
2006/10/08 Javascript
【消息提示组件】,兼容IE6/7&&FF2
2007/09/04 Javascript
javascript 单选框,多选框美化代码
2008/08/01 Javascript
js类的静态属性和实例属性的理解
2009/10/01 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
jquery 根据name名获取元素的value值
2015/02/27 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
Javascript实现字数统计
2015/07/03 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
JavaScript DOM 对象深入了解
2016/07/20 Javascript
Javascript实现登录记住用户名和密码功能
2017/03/22 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
2018/11/14 jQuery
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
JS实现简单日历特效
2020/01/03 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
Python实现批量下载文件
2015/05/17 Python
python机器学习理论与实战(五)支持向量机
2018/01/19 Python
Python 实现子类获取父类的类成员方法
2019/01/11 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
一道Delphi上机题
2012/06/04 面试题
认识深刻的检讨书
2014/02/16 职场文书
成语的广告词
2014/03/19 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
2014年人事部工作总结
2014/12/03 职场文书