美文网首页
python进阶——3. 字符串

python进阶——3. 字符串

作者: Lemon_Home | 来源:发表于2017-10-27 00:06 被阅读2次

    3.1 正则表达式

    解决s字符串分割问题,最简单的方法就是使用re.split方法

    import re
    
    s = 'ab;cd|efg|hi,jklmn\topq;rst;uvw\txyz'
    print(re.split('[,;|\t]+', s))
    

    多个分隔符可以使用[]来括起来,然后+是匹配前一个字符一次或者多次时。
    这样操作的结果就是['ab', 'cd', 'efg', 'hi', 'jklmn', 'opq', 'rst', 'uvw', 'xyz']

    3.2 匹配开头或结尾多个参数

    startswith和endswith的所匹配的参数可以是多个,但是必须是用元组表示的。

    a = "a.sh"
    b = "b.py"
    c = "c.cpp"
    
    l = [a, b, c]
    print([x for x in l if x.endswith((".sh", ".py"))])
    
    ['a.sh', 'b.py']
    

    3.3 正则表达式分组匹配替换

    将"2017-10-26"转换成"10/26/2017",比较简便的方法是通过re的sub分组捕获,然后替换成其他字符串格式。

    import re
    
    day = "2017-10-26"
    
    print(re.sub('(\d{4})-(\d{2})-(\d{2})', r'\2/\3/\1', day))
    print(re.sub('(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})',
                 r'\g<month>/\g<day>/\g<year>', day))
    

    3.4 字符串拼接

    字符串拼接主要是通过join方法,这里介绍一下特殊情况,a = ["abc", 123, 456, "def"],这时如果直接使用join,数字不是可迭代对象会报错。比较好的解决办法是将其用生成器的方式作为join的参数。

    a = ["abc", 123, 456, "def"]
    
    print("".join(str(x) for x in a))
    

    相关文章

      网友评论

          本文标题:python进阶——3. 字符串

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