美文网首页
python找茬系列16--strip() split() re

python找茬系列16--strip() split() re

作者: young十三 | 来源:发表于2019-08-07 11:45 被阅读0次

一、区别

序号 名称 描述 语法
1 strip 用于移除字符串头尾指定的字符(默认为空格)或字符序列。 str.strip([chars]);
2 split 通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。 str.split(str="", num=string.count(str))
3 replace 把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。 str.replace(old, new[, max])

二、实例

1、strip

图.png

【1】 未指定字符串

oldStr = "  Python 大星 GOOD!      "
print("strip使用前:", len(oldStr))
# 生成新的字符串!生成新的字符串!生成新的字符串!
newStr = oldStr.strip()
print(newStr)  # 指定字符串 *
print("strip使用后:", len(newStr))

输出结果:

strip使用前: 23
Python 大星 GOOD!
strip使用后: 15

【2】指定字符--不起作用

oldStr = "  ***Python 大星*** GOOD!***      "
print("strip使用前:", len(oldStr))
# 生成新的字符串!生成新的字符串!生成新的字符串!
newStr = oldStr.strip('*')
print(newStr)  # 指定字符串 *
print("strip使用后:", len(newStr))

输出结果:

strip使用前: 32
  ***Python 大星*** GOOD!***      
strip使用后: 32

\color{red}{当strip指定字符后,首尾空格不会被清除,而且除首尾的指定字符其他指定字符不会被清除}

【3】指定字符--起作用

oldStr = "  ***Python 大星*** GOOD!***"
print("strip使用前:", len(oldStr))
# 生成新的字符串!生成新的字符串!生成新的字符串!
newStr = oldStr.strip('*')
print(newStr)  # 指定字符串 *
print("strip使用后:", len(newStr))

输出结果:

strip使用前: 26
  ***Python 大星*** GOOD!
strip使用后: 23

【4】衍生函数

衍生函数右边去除--s.rtrip()
衍生函数左边去除--s.ltrip()

oldStr = "***Python 大星*** GOOD!****"
print("strip使用前:", len(oldStr))
# 生成新的字符串!生成新的字符串!生成新的字符串!
lStr = oldStr.lstrip('*')
rStr = oldStr.rstrip('*')
print("lStr = ", lStr)  # 指定字符串 *
print("rStr = ", rStr)  # 指定字符串 *
print("lstrip使用后:", len(lStr))
print("rstrip使用后:", len(rStr))

输出结果:

strip使用前: 25
lStr =  Python 大星*** GOOD!****
rStr =  ***Python 大星*** GOOD!
lstrip使用后: 22
rstrip使用后: 21

2、split

图.png

【1】无参数

raw = "  Python 大星 GOOD!  \n 12 \t 23  "
# 生成新的列表!生成新的列表!生成新的列表!
print(raw.split())

输出结果:

['Python', '大星', 'GOOD!', '12', '23']

【2】1个参数

raw = "**Python 大星**GOOD!**"

print(raw.split('**'))

raw2 = "守护**Python 大星**GOOD!**护守"

print(raw2.split('*'))

输出结果:

['', 'Python 大星', 'GOOD!', '']
['守护', '', 'Python 大星', '', 'GOOD!', '', '护守']

\color{red}{为什么数组里第一个是空字符}?
原来python编译严格按照划分,默认字符左右两侧都有字符,没有的表示空格

【3】2个参数

raw2 = "守护**Python 大星**GOOD!**护守"

# 正常分割
print(raw2.split('**', -1))
# 不分割
print(raw2.split('**', 0))
# 分割一次,成2部分
print(raw2.split('**', 1))
# 分割两次,成3部分
print(raw2.split('**', 2))
# 分割三次,成4部分
print(raw2.split('**', 3))
# 分割四次,极限了
print(raw2.split('**', 4))

输出结果:

['守护', 'Python 大星', 'GOOD!', '护守']
['守护**Python 大星**GOOD!**护守']
['守护', 'Python 大星**GOOD!**护守']
['守护', 'Python 大星', 'GOOD!**护守']
['守护', 'Python 大星', 'GOOD!', '护守']
['守护', 'Python 大星', 'GOOD!', '护守']

3、replace

image.png

1、2个参数

raw = "hello world world world"
print("原生字符串:", raw)
# 生成新的字符串!生成新的字符串!生成新的字符串!
newStr = raw.replace('world', 'Python大星')
print("新的字符串:", newStr)

输出结果:

原生字符串: hello world world world
新的字符串: hello Python大星 Python大星 Python大星

2、3个参数

raw = "hello world world world"
print("原生字符串:", raw)
# 生成新的字符串!生成新的字符串!生成新的字符串!
# 替换次数 <= 2
newStr = raw.replace('world', 'Python大星', 2)
print("新的字符串:", newStr)

输出结果:

原生字符串: hello world world world
新的字符串: hello Python大星 Python大星 world

相关文章

网友评论

      本文标题:python找茬系列16--strip() split() re

      本文链接:https://www.haomeiwen.com/subject/cwdidctx.html