获取最新字符串并打印其值

2024-04-16 09:04:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的代码,找到所有的标签“依赖于”并连接它们并打印它们..现在我只想获取最后一个依赖于和打印是值..预期输出和当前输出如下所示。你知道吗

Current output:-

['348523', '350167', '350169', '348522', '350166', '350168', '350169', '350170', '350428', '350435', '350439', '350446', '350449', '350450', '350459', '350462', '350463', '350466', '350472', '350475', '350810', '350811', '350812', '350870', '350871', '350875', '350876', '350882', '350883', '350884', '350885', '348521']

Expected output:-
['348521','238567']

你知道吗代码:-你知道吗

import re
def findexternaldep ():
    #print "Processing dependency for change %s", change
    #change=str(change)
    comments = ''' comments:
    timestamp: 2013-06-12 09:18:36 PDT
    reviewer:
      name: user L
      email: username@com.company.com
      username: username
    message: Patch Set 2:

             Depends-on: 348523 350167 350169
    timestamp: 2013-06-12 09:18:36 PDT
    reviewer:
      name: user L
      email: username@com.company.com
      username: username
    message: Patch Set 2:

             Depends-on: 348522 350166 350168 350169 350170 350428 350435 350439 350446 350449 350450 350459 350462 350463 350466 350472 350475 350810 350811 350812 350870 350871 350875 350876 350882 350883 350884 350885
  comments:
    timestamp: 2013-06-12 10:39:46 PDT
    reviewer:
      name: user L
      email: username@com.company.com
      username: username
    message: Patch Set 2:
             Depends-on: 348521 238567
    '''

    print "COMMENTS"
    print comments
    deps = ' '.join(re.findall(r'(?<=Depends-on:\s)[\d ]+(?=\n)', comments)).split()
    print "DEPS"
    print deps
    #print depgerrit
    return deps

def main ():
    findexternaldep()

if __name__ == '__main__':
    main()

Tags: namecommessageonemailusernamechangecomments
3条回答

使用贪心点匹配跳过直到最后一个取决于:

m=re.match(r'.*Depends-on:\s*([^\n]*)', comments, re.DOTALL)
if m: print m.group(1)

输出:

348521

只需在评论中向后搜索,然后一直搜索到行末:

print comments.rsplit('Depends-on: ', 1)[1].split('\n', 1)[0]

或将正则表达式修改为:

deps = re.findall(r'(?<=Depends-on:\s)[\d ]+(?=\n)', comments)

然后得到最后一个元素:

print deps[-1]

如果你想让他们都加入:

all_deps = ' '.join(deps) # similar to before

如果“latest”是指列表的最后一个元素,则可以通过以下方式获得:

deps[-1]

例如:

a = [2,4,6]
e = a[-1]
print(e)    #  Prints "6"

这似乎是你所期待的输出。你知道吗

但是,如果要查找列表元素中最大或最小的元素(当被解释为整数时),可以使用以下命令:

max(map(int, deps))

例如:

a = ['2','4','1','3']
e = max(map(int, a))
print(e)    #  Prints "4"

相关问题 更多 >