簡體   English   中英

正則表達式grep python中的匹配字符串

[英]regular expression to grep the matching string in python

通過在子進程中運行命令,我得到了以下列表:

import os, subprocess
>>> args = "svn ls https://svne1.access.nsn.com/isource/svnroot/scm_fp/trunk"
>>> pi = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
>>> stdout, stderr = pi.communicate()
>>> print stdout
R_FPT_180.15.1.11.1.0/
R_FPT_180.15.1.41/
R_FPT_180.15.1.42/
R_FPT_190.10/
R_FPT_190.11/
R_FPT_190.6.1.0/
R_FPT_2.4.1.22/
R_FPT_3.2.1.70/

在上面的列表中,我只想grep“ R_FPT_190.10 /”和“ R_FPT_190.11 /”,然后再次grep這兩個在最后一個有較大編號的代碼(在上面的示例10,11中),我需要獲取更大的一個(在上面的示例中,我需要最終獲得“ R_FPT_190.11 /”)。 有人可以幫忙嗎?

使用正則表達式:

例如:

s = """R_FPT_180.15.1.11.1.0/
R_FPT_180.15.1.41/
R_FPT_180.15.1.42/
R_FPT_190.10/
R_FPT_190.11/
R_FPT_190.6.1.0/
R_FPT_2.4.1.22/
R_FPT_3.2.1.70/"""
import re
print(re.findall("R_FPT_\d+\.\d+\/", s))

d = max([int(i.split(".")[-1].rstrip(r"/")) for i in re.findall("R_FPT_\d+\.\d+\/", s)])
print(d)

輸出:

['R_FPT_190.10/', 'R_FPT_190.11/']
11

暫無
暫無

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

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