Regex:获取要匹配的多个模式之间的模式



假设我有一个字符串

versioned object base "/cm/common" (locked)
created 2002-08-22T11:43:31+02:00 by Super-User (root.other@bb-soft-ccs)
VOB family feature level: 4
VOB storage host:pathname "atpccupd.cvc-global.net:/export/vobstore/obce/cm_common.vbs"
VOB storage global pathname "/net/atpccupd.cvc-global.net/export/vobstore/obce/cm_common.vbs"
database schema version: 80
modification by remote privileged user: allowed
atomic checkin: disabled
VOB ownership:
owner tmn/ccadm
group tmn/HBGHS_CC_G
Additional groups:
group tmn/smc_cc
ACLs enabled: No
Attributes:
FeatureLevel = 4

在第二行中,您可以看到我们有created 2002-08-22T11:43:31+02:00 by Super-User (root.other@bb-soft-ccs)。我需要从这里提取Super-User

我需要写一个regex,这样它首先匹配created,然后是第一个类似日期时间的模式,然后是by,然后再获得字符串。同一行中的最后一个字符串可以是结尾,也可以是需要模式匹配的电子邮件。

所以我基本上需要的是

r'由(matchuser(创建(matchdateTtime(($orEmailMatchWithinBrackets('

这就是我尝试的

import re
re.search(r'created (d{4}-d{2}-d{2}Td{2}:d{2}:d{2}+d{2}:d{2})by(.*?)(emailmatchpattern|$)', text)

但这似乎并不奏效。

这是我的电子邮件匹配模式:^[w-.]+@([w-]+.)+[w-]{2,4}$

try:

import re
re.search("(?<=createdsdddd-dd-ddTdd:dd:dd+dd:ddsbys).*(?=s()", text)

最新更新