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