DAY 009--str(替换三种方法)

str替换                                                                               

1、str.replace(old, new[, max])                                                             

  • old -- 将被替换的子字符串。
  • new -- 新字符串,用于替换old子字符串。
  • max -- 可选字符串, 替换不超过 max 次
  • replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
str="hello,world!"
print(str.replace("l","L",2))

heLLo,world!

 

2、str.maketrans(intab, outtab)+str.translate(maketrans)                      

  • intab -- 字符串中要替代的字符组成的字符串。
  • outtab -- 相应的映射字符的字符串。
  • Python maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

    两个字符串的长度必须相同,为一一对应的关系

Python3.4已经没有string.maketrans()了,取而代之的是内建函数: bytearray.maketrans()、bytes.maketrans()、str.maketrans()

translate()方法语法:

str.translate(table)
bytes.translate(table[, delete])    
bytearray.translate(table[, delete])
str="hello,world!"
intab="el"
outtab="EL"
tranb=str.maketrans(intab,outtab)
result=str.maketrans(tranb)

hELLo,worLd!

参数

  • table -- 翻译表,翻译表是通过 maketrans() 方法转换而来。
  • deletechars -- 字符串中要过滤的字符列表。   

若给出了delete参数,则将原来的bytes中的属于delete的字符删除,剩下的字符要按照table中给出的映射来进行映射

  • 若table参数为None,则只删除不映射
print(b'http://www.csdn.net/wirelessqa'.translate(None, b'ts'))

b'hp://www.cdn.ne/wireleqa'
  • 若table参数不为NONE,则先删除再映射
bytes_tabtrans = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz', b'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
print(b'http://www.csdn.net/wirelessqa'.translate(bytes_tabtrans, b'ts'))

b'HP://WWW.CDN.NE/WIRELEQA'

 

3、re模块                                                                                          

Python 的re模块提供了re.sub用于替换字符串中的匹配项。re.sub(pattern, repl, string, count=0)

  • pattern : 正则中的模式字符串。
  • repl : 替换的字符串,也可为一个函数。
  • string : 要被查找替换的原始字符串。
  • count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
import re
 
phone = "2004-959-559 # 这是一个电话号码"
 
# 删除注释
num = re.sub(r'#.*$', "", phone)
print ("电话号码 : ", num)
电话号码 :  2004-959-559 


移除非数字的内容
num = re.sub(r'\D', "", phone)
print ("电话号码 : ", num)
电话号码 :  2004959559

 

Mark on 2018.04.08

posted @ 2018-04-08 07:40  JunSheep  阅读(705)  评论(0编辑  收藏  举报