簡體   English   中英

Python正則表達式匹配結果中缺少組

[英]Missing group in Python regex match result

考慮以下代碼片段:

import re

m = re.match(r'(\d-\w){2,3}', r'1-a2-b')

m.group(0), m.group(1), m.groups()

('1-a2-b', '2-b', ('2-b',))

因此m.group(0)會按預期返回整個匹配項,但是為什么m.group(1)僅返回第二個重復項“ 2-b”? 第一個重復項“ 1-a”在哪里?

謝謝!

因為您僅為捕獲標記提供了捕獲組,該標記位於重新定義量{2,3}greedy )之前,后者僅捕獲最后一個匹配項。 因此,還應在捕獲組中包含重新定義量詞或范圍量詞,並將先前的捕獲組設為非捕獲組,否則它將產生兩個組。 嘗試這個,

((?:\d-\w){2,3})

這與(.)+(.+)完全相同

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM