【问题标题】:Wyh there are empty items after re.split()?为什么在 re.split() 之后有空项目?
【发布时间】:2023-01-28 22:25:55
【问题描述】:

我想我误解了re.split() 的工作原理。

这是一个真实而简单的例子。

>>> import re
>>> re.split('(abc)', 'abc')
['', 'abc', '']

我对结果列表中的第一个和最后一个空 ('') 元素感到困惑。我期望的结果是这样的:

['abc']

这是一个非常简化的例子。请让我给出更复杂的东西。

>>> re.split(r'\[\[(.+?)\]\[(.+?)\]\]', '[[one][two]]')
['', 'one', 'two', '']

我期望的结果是:

['one', 'two']

第三个示例前后的单词按预期工作。

>>> re.split(r'\[\[(.+?)\]\[(.+?)\]\]', 'zero [[one][two]] three')
['zero ', 'one', 'two', ' three']

【问题讨论】:

  • @tripleee - re.split 不是 str.split,错误的重复。

标签: python regex


【解决方案1】:

如果您在 re.split 表达式中使用捕获组,拆分部分 (abc) 也会在输出中返回。

返回值中的第二个项目是捕获的拆分模式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 2022-08-21
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多