美文网首页
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