Regex积极展望并展望未来

时间:2015-11-18 12:58:51

标签: python regex

我有一些像这样的任意输出:

ABC1    1.1.1.1    20151118    active
ABC2    2.2.2.2    20151118    inactive
xxx     x.x.x.x    xxxxxxxx    active

我正在尝试使用正则表达式确定一个模式,以便为包含ABCactive

的行提取第二列值

这是我到目前为止所得到的,但我已经陷入困境......

我的问题似乎是第一列和第二列之间的空格,但是Python不允许在后面看到可变宽度模式。

(?<ABC)(\s+)(\d+).(\d+).(\d+).(\d+)(?=\S+\s+active)

1 个答案:

答案 0 :(得分:1)

无需使用lookbehind。您可以使用此正则表达式并抓取捕获的组#1:

^ABC\S+\s+(\S+)(?=.*\sactive\b)

RegEx Demo

<强>代码:

import re
p = re.compile(ur'^ABC\S+\s+(\S+)(?=.*\sactive\b)', re.MULTILINE)

re.findall(p, input)