Case1 : 定符分割(re.split())
split() 方法只适应于非常简单的字符串分割情形, 它并不允许有多个分隔符或者是分隔符周围不确定的空格。 当需要更加灵活的切割字符串的时候,最好使用 re.split() 方法
import re
line = 'asdf fjdk ; afed , fjek , asdf , foo'
#[]中的一个或者多个字符被称为字符类,\s 匹配Unicode空白,* 匹配前面的字符任意次
#以第一个字符为;,空格,结尾为任意个空格的内容为分割条件
aa=re.split(r'[;,\s]\s*', line)
print(aa)
-------------result-------------
['asdf', 'fjdk', '', 'afed', '', 'fjek', '', 'asdf', '', 'foo']
Case2 : startswith()和str.endswith()(检查字符串开头或结尾)
filename = 'spam.txt'
print(filename.endswith('.txt'))
print(filename.startswith('file:'))
-------------result-------------
True
False
Case3 : fnmatch(匹配某字符串是否存在)
#fnmatch() 匹配时大小写都会匹配 ; fnmatchcase() 匹配时大小写需要一致
from fnmatch import fnmatchcase,fnmatch
addresses = ['5412 N CLARK ST','1060 W ADDISON ST','1039 W GRANVILLE AVE','2122 N CLARK ST','4802 N BROADWAY',]
mm = [addr for addr in addresses if fnmatch(addr, '*st')]
nn = [addr for addr in addresses if fnmatchcase(addr, '*st')]
qq = [addr for addr in addresses if fnmatchcase(addr, '*ST')]
print(mm)
print(nn)
print(qq)
-------------result-------------
['5412 N CLARK ST', '1060 W ADDISON ST', '2122 N CLARK ST']
[]
['5412 N CLARK ST', '1060 W ADDISON ST', '2122 N CLARK ST']