1. 字符串分割
将一个字符串分割为多个字段,但是分隔符(还有周围的空格)并不是固定的。
- str.split() 和 re.split()
string 对象的 split() 方法只适应于非常简单的字符串分割情形, 它不允许有多个分隔符或者是分隔符周围不确定的空格。 当需要更加灵活的切割字符串的时候,应该使用 re.split()方法:
import re
line = 'asdf fjdk; afed, fjek,asdf, foo'
print(re.split(r'[;,]', line))
# >>> ['asdf fjdk', ' afed', ' fjek', 'asdf', ' foo']
print(re.split(r'[;,\s]', line))
# >>> ['asdf', 'fjdk', '', 'afed', '', 'fjek', 'asdf', '', 'foo']
print(re.split(r'[;,\s]\s', line))
# >>> ['asdf fjdk', 'afed', 'fjek,asdf', 'foo']
print(re.split(r'[;,\s]\s*', line)) # \s* 表示连续的空格
# >>> ['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
函数 re.split() 是非常实用的,因为它允许为分隔符指定多个正则模式。 比如,在上面的例子中,分隔符可以是逗号,分号或者是空格,并且后面紧跟着任意个的空格。 只要这个模式被找到,那么匹配的分隔符两边的实体都会被当成是结果中的元素返回。 返回结果为一个字段列表,这个跟 str.split() 返回值类型是一样的。
2. 字符串首尾匹配
当我们需要通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀