регулярное выражение для поиска соответствующей строки в python - PullRequest
0 голосов
/ 25 апреля 2018

Я получил один список следующим образом, запустив команду в подпроцессе:

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 /" и после greppingэти два снова, которые когда-либо имеют большое число в последнем (в приведенном выше примере 10,11), мне нужно получить большее (в приведенном выше примере мне нужно, наконец, получить "R_FPT_190.11 /").Кто-нибудь может помочь в этом?

1 Ответ

0 голосов
/ 25 апреля 2018

Использование регулярного выражения:

Пример:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...