You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Python中re.split分割空字符串的结果疑问

关于re.split分割空字符串的结果解释

核心原因在于\W*这个模式可以匹配空字符串(*表示允许零次匹配),而re.split处理空字符串输入+能匹配空的模式时,有特定的行为规则:

无捕获组的re.split(r'\W*', '')返回['','']

当用能匹配空的模式分割空字符串时,re.split会把空字符串看作被起始位置的空匹配分割成两部分:

  • 左边是匹配前的空内容,右边是匹配后的空内容
  • 由于模式没有捕获组,匹配到的空字符串不会被加入结果,最终得到两个空字符串组成的列表。

带捕获组的re.split(r'(\W*)', '')返回['','','']

当模式包含捕获组时,re.split会把捕获到的匹配内容也插入结果列表:

  • 同样是起始位置的空匹配分割空字符串,左边是空内容,捕获到的是空字符串,右边是空内容
  • 这三部分组合起来就形成了['','','']

额外补充:如果换用不能匹配空的模式(比如\W+),分割空字符串会直接返回['']——因为找不到任何分割点,原字符串会被完整保留。

内容的提问来源于stack exchange,提问作者hucongling

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 06:32:11