Python re.split() 方法用于按指定正则表达式模式的出现次数拆分字符串。它返回一个子字符串列表。
我们还可以包含可选标志来修改模式匹配的行为。此方法对于解析分隔符不固定或需要更高级拆分逻辑的字符串特别有用。
str.split() 方法通过固定的分隔符进行拆分,而 re.split() 方法允许通过复杂的模式(如数字、单词或任何正则表达式定义的模式)进行拆分。
语法
以下是 Python re.split() 方法的语法和参数 -
re.split(pattern, string, maxsplit=0, flags=0)
参数
以下是 python re.split() 方法的参数 -
- pattern:要作为拆分依据的正则表达式模式。
- string:要拆分的字符串。
- maxsplit(可选):最大拆分数。默认值为 0,表示“无限制”。
- flags(可选):这些标志会修改模式。
返回值
该方法返回根据指定模式对输入字符串进行切分得到的子字符串列表。
示例 1
以下是 python re.split() 方法的基本示例。在此示例中,模式 \s+ 拆分字符串的一个或多个空白字符 -
import re
result = re.split(r'\s+', 'Hello world! Welcome to Python.')
print(result)
输出
['Hello', 'world!', 'Welcome', 'to', 'Python.']
示例 2
在这个例子中,我们通过在 re.split() 方法中指定 maxsplit=2 参数来限制拆分的数量 -
import re
result = re.split(r'\s+', 'Hello world! Welcome to Python.', maxsplit=2)
print(result)
输出
['Hello', 'world!', 'Welcome to Python.']
示例 3
在此示例中,我们使用 re.VERBOSE 标志允许以更具可读性的方式编写正则表达式,包括 comments 和 whites paces -
import re
pattern = re.compile(r"""
\d+ # One or more digits
""", re.VERBOSE)
result = pattern.split('abc123def456ghi789')
print(result)
输出
['abc', 'def', 'ghi', '']
示例 4
此示例使用模式 \b,它通过允许在单词边界处拆分字符串来匹配单词边界 -
import re
result = re.split(r'\b', 'Hello, world!')
print(result)
输出
['', 'Hello', ', ', 'world', '!']