将字符串分片
`RegexObject` 的 split() 方法在 RE 匹配的地方将字符串分片,将返回列表。它同字符串的 split() 方法相似但提供更多的定界符;split()只支持空白符和固定字符串。就象你预料的那样,也有一个模块级的 re.split() 函数。
split(string [, maxsplit = 0])
通过正则表达式将字符串分片。如果捕获括号在 RE 中使用,那么它们的内容也会作为结果列表的一部分返回。如果 maxsplit 非零,那么最多只能分出 maxsplit 个分片。
你可以通过设置 maxsplit 值来限制分片数。当 maxsplit 非零时,最多只能有 maxsplit 个分片,字符串的其馀部分被做为列表的最後部分返回。在下面的例子中,定界符可以是非数字字母字符的任意序列。
#!python
>>> p = re.compile(r'"W+'
)![比较详细Python正则表达式操作指南(re使用)[9]](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
>>> p.split('This is a test, short and sweet, of split().'
)![比较详细Python正则表达式操作指南(re使用)[9]](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
['This', 'is', 'a', 'test', 'short', 'and', 'sweet', 'of', 'split', ''
]![比较详细Python正则表达式操作指南(re使用)[9]](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
>>> p.split('This is a test, short and sweet, of split().', 3
)![比较详细Python正则表达式操作指南(re使用)[9]](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
['This', 'is', 'a', 'test, short and sweet, of split().'
]
有时,你不仅对定界符之间的文本感兴趣,也需要知道定界符是什么。如果捕获括号在 RE 中使用,那么它们的值也会当作列表的一部分返回。比较下面的调用:
#!python
>>> p = re.compile(r'"W+'
)![比较详细Python正则表达式操作指南(re使用)[9]](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
>>> p2 = re.compile(r'("W+)'
)![比较详细Python正则表达式操作指南(re使用)[9]](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
>>> p.split('This
is a test.'
)![比较详细Python正则表达式操作指南(re使用)[9]](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
['This', 'is', 'a', 'test', ''
]![比较详细Python正则表达式操作指南(re使用)[9]](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
>>> p2.split('This
is a test.'
)![比较详细Python正则表达式操作指南(re使用)[9]](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
['This', '
', 'is', ' ', 'a', ' ', 'test', '.', ''
]
模块级函数 re.split() 将 RE 作为第一个参数,其他一样。
#!python
>>> re.split('["W]+', 'Words, words, words.'
)![比较详细Python正则表达式操作指南(re使用)[9]](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
['Words', 'words', 'words', ''
]![比较详细Python正则表达式操作指南(re使用)[9]](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
>>> re.split('(["W]+)', 'Words, words, words.'
)![比较详细Python正则表达式操作指南(re使用)[9]](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
['Words', ', ', 'words', ', ', 'words', '.', ''
]![比较详细Python正则表达式操作指南(re使用)[9]](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
>>> re.split('["W]+', 'Words, words, words.', 1
)![比较详细Python正则表达式操作指南(re使用)[9]](https://i-blog.csdnimg.cn/blog_migrate/f0cd6c7f9e7ae96feae062cb48f670f0.gif)
['Words', 'words, words.'
]

本文介绍如何使用Python中的正则表达式进行字符串分片,包括`re.split()`函数及`RegexObject.split()`方法的基本使用方法。文章展示了如何通过设置maxsplit参数限制分片数量,以及如何利用捕获括号在分片的同时获取定界符。

被折叠的 条评论
为什么被折叠?



