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中ConfigParse模块的用法
Sep 29 Python
Python机器学习算法之k均值聚类(k-means)
Feb 23 Python
Python递归函数实例讲解
Feb 27 Python
详解用python写网络爬虫-爬取新浪微博评论
May 10 Python
计算机二级python学习教程(3) python语言基本数据类型
May 16 Python
python从入门到精通 windows安装python图文教程
May 18 Python
python2和python3实现在图片上加汉字的方法
Aug 22 Python
Python合并2个字典成1个新字典的方法(9种)
Dec 19 Python
python通过移动端访问查看电脑界面
Jan 06 Python
使用Django搭建网站实现商品分页功能
May 22 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 Python
opencv检测动态物体的实现
Jul 21 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
一个图形显示IP的PHP程序代码
2007/10/19 PHP
php生成QRcode实例
2014/09/22 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
2015/08/31 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
基于javascript实现样式清新图片轮播特效
2016/03/30 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
Pycharm设置界面全黑的方法
2018/05/23 Python
提高EJB性能都有哪些技巧
2012/03/25 面试题
教师实习期自我鉴定
2013/10/06 职场文书
自荐信要包含哪些内容
2013/11/06 职场文书
读书心得体会
2013/12/28 职场文书
生物制药专业求职信
2014/03/11 职场文书
研究生考核个人自我鉴定
2014/03/27 职场文书
小班开学寄语
2014/04/04 职场文书
教师批评与自我批评
2014/10/15 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
费城故事观后感
2015/06/10 职场文书
2015年统计员个人工作总结
2015/07/23 职场文书
党员理论学习心得体会
2016/01/21 职场文书
2016年感恩母亲节活动总结
2016/04/01 职场文书