在编写程序的时候我们经常遇到字符,
但是这些字符串有事并不全是我们需要的,
这是我们就需要对字符串进行处理,
去掉字符串中我们不需要的字符。
常用的方法有如下五种:
一、字符串 strip(),lstrip(),rstrip() 方法去掉字符串字符
使用 python
自带的函数进行处理;
strip() 方法用于移除字符串头尾指定的字符(默认为空格)。
lstrip() 方法用于截掉字符串左边的空格或指定字符。
rstrip() 删除 string 字符串末尾的指定字符(默认为空格)。
语法:
str.strip([chars]);
str = ' https://fengkui.net '
print(str.strip()) # 去掉两端字符 'https://fengkui.net'
print(str.lstrip()) # 去掉左侧字符 'https://fengkui.net '
print(str.rstrip()) # 去掉右侧字符 ' https://fengkui.net'
二、删除单个固定位置的字符串,可以使用切片 + 拼接的方式
str = 'https://fe$ngkui.net' # 去掉$
str = str[:10] + str[11:] # 先切片 再 + 拼接的方式
print(str) # 'https://fengkui.net'
三、删除多个固定的字符串,可以先去掉指定字符串转成列表,然后再拼接成字符串
str = 'htt$ps://fe$ngkui.n$et' # 去掉$
str_list = str.split('$') # 先去掉指定字符串转列表
str = ''.join(str_list) # 然后再拼接 列表
print(str) # 'https://fengkui.net'
四、字符串的 replace() 方法或正则表达式 re.sub() 替换的方法删除任意子串
replace()
方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
语法:
str.replace(old, new[, max])
str = 'htt$ps://fe$ngkui.n$et' # 去掉$
str = str.replace('$','') # 用空的内容替换掉$
print(str) # 'https://fengkui.net'
Python 的re模块提供了 re.sub
用于替换字符串中的匹配项。
import re
str = 'htt$ps://fe$ngkui.n$et' # 去掉$
str = re.sub(r'[\$]', '', str) # 用空的内容替换掉$
print(str) # 'https://fengkui.net'
五、字符串的 translate() 方法,可以同时删除多种不同字符
import unicodedata
s = 'abc1234xyz'
t1 = s.translate({ord('a'): 'X'}) # 'Xbc1234xyz'
print(t1)
t2 = s.translate({ord('a'): 'X', ord('b'): 'Y'}) # 'XYc1234xyz'
print(t2)
mk = s.maketrans('abcxyz', 'XYZABC') # '{97: 88, 98: 89, 99: 90, 120: 65, 121: 66, 122: 67}'
t3 = s.translate(mk) # 'XYZ1234ABC'
print(t3)
t4 = s.translate({ord('a'): None}) # 'bc1234xyz'
print(t4)
# 将'ní hǎo,zhōng guō'转成'ni hao,zhong guo'
str = unicodedata.normalize('NFD','ní hǎo,zhōng guō')
c = unicodedata.normalize('NFD','ǎ')
# print(len(c), c[0], c[1]) # 2 a ̌
str1 = dict.fromkeys([ord(s) for s in str if unicodedata.combining(s)], None)
str2 = str.translate(str1)
print(str2) # 'ni hao,zhong guo'
本文为冯奎原创文章,转载无需和我联系,但请注明来自冯奎博客fengkui.net
最新评论