當我想知道背後的以下行爲的原因:括號中的正則表達式分割字符串
>>> re.compile("(b)").split("abc")[1]
'b'
>>> re.compile("b").split("abc")[1]
'c'
我看來,當我周圍添加分裂模式括號,重新將其添加入拼合陣列。但爲什麼?它是一致的,還是簡單的正則表達式的獨立特徵?
當我想知道背後的以下行爲的原因:括號中的正則表達式分割字符串
>>> re.compile("(b)").split("abc")[1]
'b'
>>> re.compile("b").split("abc")[1]
'c'
我看來,當我周圍添加分裂模式括號,重新將其添加入拼合陣列。但爲什麼?它是一致的,還是簡單的正則表達式的獨立特徵?
它的re.split
一個特點,根據documentation:
如果捕獲括號在圖案中使用,然後在圖案中的所有組的文本也返回結果列表的一部分。
通常,括號表示捕獲組,並用於提取字符串的某些部分。閱讀更多關於capture groups。
在任何正則表達式中,括號都表示一個捕獲組。捕獲組通常用於從匹配的字符串中提取值(連同re.match
或re.search
)。有關詳細信息,請參閱official documentation(搜索(...)
)。
re.split
添加匹配組中的分裂值之間:
如果捕獲括號在圖案中使用,則在圖案中的所有組的文本也被返回作爲結果列表的一部分。