Python 关于字符串处理技巧

时间:2023-03-08 20:56:17
Python 关于字符串处理技巧

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

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

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

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

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

 >>> filename = 'spam.txt'
>>> filename.endswith('.txt')
#out: True
>>> filename.startswith('file:')
#out: False
>>> url = 'http://www.python.org'
>>> url.startswith('http:')
#out: True

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

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

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

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

匹配多个可疑用 or;

3.字符串替换

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