【发布时间】:2018-02-07 05:59:44
【问题描述】:
我正在尝试提出一个正面环顾四周有效的示例,但 非捕获组将不起作用,以进一步了解它们的用法。我提出的示例也适用于非捕获组,所以我觉得我没有完全掌握积极环顾四周的用法。
这是一个字符串(取自一个 SO 示例),它在答案中使用正向预测。用户想要获取第二列的值,只有当 第一列以 ABC 开头,最后一列的值为“活动”。
string ='''ABC1 1.1.1.1 20151118 active
ABC2 2.2.2.2 20151118 inactive
xxx x.x.x.x xxxxxxxx active'''
给出的解决方案使用“积极展望”,但我注意到我可以使用非捕获组来得出相同的答案。 所以,我很难想出一个正面环顾工作,非捕获组不起作用的例子。
pattern =re.compile('ABC\w\s+(\S+)\s+(?=\S+\s+active)') #solution
pattern =re.compile('ABC\w\s+(\S+)\s+(?:\S+\s+active)') #solution w/out lookaround
如果有人愿意提供一个例子,我将不胜感激。
谢谢。
【问题讨论】:
-
这将与前瞻之后的内容有关。前瞻是零宽度(我认为)而不是非捕获。
-
一个组(捕获或非捕获)使用字符串。环视不会。
标签: python regex python-3.x regex-lookarounds regex-group