python中删除指定字符函数_去掉字符串中不需要的字符(Python)

在编写程序的时候我们经常遇到字符,

但是这些字符串有事并不全是我们需要的,

这是我们就需要对字符串进行处理,

去掉字符串中我们不需要的字符。

常用的方法有如下五种:

一、字符串 strip(),lstrip(),rstrip() 方法去掉字符串字符

使用 python 自带的函数进行处理;

strip() 方法用于移除字符串头尾指定的字符(默认为空格)。

lstrip() 方法用于截掉字符串左边的空格或指定字符。

rstrip() 删除 string 字符串末尾的指定字符(默认为空格)。

语法:

str.strip([chars]);

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])

old -- 将被替换的子字符串。

new -- 新字符串,用于替换old子字符串。

max -- 可选字符串, 替换不超过 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'

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值