zoukankan      html  css  js  c++  java
  • Python 关于字符串处理技巧

     

    1.使用多个字符或字符串作为分隔符分割字符串

    str.split()方法只能制定单个字符或字符串作为分割符, re.split()方法可以用正则表达式作为分割符, re.split()跟str.split()返回值类型是一样的;

    1 >>> line = 'asdf fjdk; afed, fjek,asdf, foo'
    2 >>> import re
    3 >>> re.split(r'[;,s]s*', line)
    4 #out: ['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']

     

    2.检查开头或结尾是否为指定字符串

    检查字符串开头可以用 str.startswith(), 结尾可以用str.endswith();

    1 >>> filename = 'spam.txt'
    2 >>> filename.endswith('.txt')
    3 #out: True
    4 >>> filename.startswith('file:')
    5 #out: False
    6 >>> url = 'http://www.python.org'
    7 >>> url.startswith('http:')
    8 #out: True

    想要匹配多种可能, 可以将多种匹配项用元组包装, 然后再传入函数;

    1 >>> import os
    2 >>> filenames = os.listdir('.')
    3 >>> filenames
    4 #out: [ 'Makefile', 'foo.c', 'bar.py', 'spam.c', 'spam.h' ]
    5 >>> [name for name in filenames if name.endswith(('.c', '.h'))]
    6 #out: ['foo.c', 'spam.c', 'spam.h'

    另外可以用切片来实现, 只不过是看起来没那么优雅;

    1 >>> filename = 'spam.txt'
    2 >>> filename[-4:] == '.txt'
    3 #out: True

    匹配多个可疑用 or;

    3.字符串替换

    简单的字符串替换可以用:str.repalce(), 复杂一点用 re 模块中的 sub() 函数 ;

  • 相关阅读:
    cmd开启3389,无需重启!
    x86的控制寄存器CR0,CR1,CR2,CR3
    x64下fs的角色已经换成了gs
    在win64里,只有一种调用约定
    fs寄存器
    【转】C++ 编译器的函数名修饰规则
    windbg ida需要symbols
    WIN7-X64内核模式下编程实现导出表列表查看
    VS2010+WDK配置要点
    比特币 —— 学习笔记(一)
  • 原文地址:https://www.cnblogs.com/tingshuo123/p/6815412.html
Copyright © 2011-2022 走看看