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() 函数 ;

 

posted @ 2017-05-05 23:56  TingShuo  阅读(163)  评论(0编辑  收藏  举报