0.摘要
字符串自带的.split()方法只能应对单一分隔符的情况,本文介绍正则表达式的方法可以满足对多重分隔符分离要求,并且能够处理更为复杂的字符串。
1.re.split()
split(pattern, string, maxsplit=0, flags=0):该函数会按照pattern的形式对string进行分割,pattern通常以正则表达式编写,用于说明分隔符的匹配样式。
import re
line = 'asdf fjdk; afed, fjek,asdf, foo'
# (a) Splitting on space, comma, and semicolon
parts = re.split(r'[;,\s]\s*', line)
print(parts)
#result:['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
本例子的string包含了空格、制表符、逗号、分号等多种分隔符。
正则表达式中:
[]:表示字符集合,匹配所包含的任意一个字符。
\s:表示匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
*:表示匹配前面的子表达式零次或多次。
r'[;,\s]\s*':表示分隔符为:分号、逗号和空白字符三者之一+[0,+∞)个空白字符。
需要注意的是: