2016-08-04 2 views
1
def GetVersionPlugsThemes(url): 
    data = exlib.GetDataFromURL(url) 
    regex = "Drupal \s*?([\d.]+)," 
    pattern = re.compile(regex,re.MULTILINE) 
    result = re.findall(pattern,data) 
    result = list(set(result)) 
    return result 
print GetVersionPlugsThemes("https://daa.uit.edu.vn/CHANGELOG.txt") 

Результат:Python 2.7 регулярное выражение получает версию из Друпала

[ '7,14', '7,15', '7,16', '7,17', '7,10', '7,11', '7,12', «7.13», «7.18», «7.19», «7.2», «7.3», «7.0», «6.4», «7.6», «7.7», «7.4», «7.5», «1.0.0», «7.8», «7.9», «6.9», «6.8», «4.0.0», «4.5.7», «4.5.1», «4.7.2», «4.7.3», «4.7.0» «4.7.1», «4.7.6», «4.7.7», «4.7.4», «4.7.5», «4.7.8», «4.7.9», «4.5.5», «4.5.0», «6.7», «4.5.2», «4.5.3», «4.5.4», «4.5.6», «4.6.11», «6.6», «4.5.8», «4.6.10», «6.5», «7.1», «4.3.2», «4.3.0», «4.3.1», «6.3», «6.2», «7.32», «7.33», «7.30 ', 7.31', '7.36', '7.37', '7.34', '7.35', '7.38', '7.39', '4.1.0', '4.7.10', '4.7.11', '7.29 ',' 7.28 ',' 7.25 ',' 7.24 ', «7.27», «7.26», «7.21», «7.20», «7.23», «7.22», «2.0.0», «7.50», «5.23», «5.22», «5.21», «5.20», «4.6.4», «3.0.0», «3.0.1», «6.19», «6.18», «6.13», «6.12», «7.41», «7.40», «6.17», «6.16», «5.15», «7.44», «5.12», «5.13», «5.10», «5.11», «5.16», «5.17», «5.14», «5.15», «5.18», «5.19», «5.0 «5,1», «5,4», «5,4», «5,4», «5,4», «5,4», «5,4», «5,4», «5,4», «5,4», «6.11», «6.10», «6.0», «4.6.9», «4.6.8», «4.6.7», «4.6.6», «4.6.5», «6.14», «4.6.3» «4.6.2», «4.6.1», «4.6.0», «4.4.1», «4.4.0», «4.4.3», «4.4.2», «4.2.0», «6.22», «6.20», «6.21»]

Как получить последнюю версию - «7.50»? Благодарю.

+0

вы должны просматривать список – ZiTAL

ответ

0

Поскольку это файл изменений, последняя версия всегда является первым совпадением.

def GetVersionPlugsThemes(url): 
    data = exlib.GetDataFromURL(url) 
    regex = "Drupal \s*?([\d.]+)," 
    pattern = re.compile(regex,re.MULTILINE) 
    iter = re.finditer(pattern,data) 
    return iter.next().group(1) 

print GetVersionPlugsThemes("https://daa.uit.edu.vn/CHANGELOG.txt") 

Результат: 7,50

0

Вы можете также использовать sort методы объекта списка для сортировки числовых значений, отображенных в целое, и получить последний элемент результирующего списка:

t = ['7.14', '7.15', '7.16', '7.17', '7.10', '7.11', '7.12', '7.13', '7.18', '7.19', '7.2', '7.3', '7.0', '6.4', '7.6', '7.7', '7.4', '7.5', '1.0.0', '7.8', '7.9', '6.9', '6.8', '4.0.0', '4.5.7', '4.5.1', '4.7.2', '4.7.3', '4.7.0', '4.7.1', '4.7.6', '4.7.7', '4.7.4', '4.7.5', '4.7.8', '4.7.9', '4.5.5', '4.5.0', '6.7', '4.5.2', '4.5.3', '4.5.4', '4.5.6', '4.6.11', '6.6', '4.5.8', '4.6.10', '6.5', '7.1', '4.3.2', '4.3.0', '4.3.1', '6.3', '6.2', '7.32', '7.33', '7.30', '7.31', '7.36', '7.37', '7.34', '7.35', '7.38', '7.39', '4.1.0', '4.7.10', '4.7.11', '7.29', '7.28', '7.25', '7.24', '7.27', '7.26', '7.21', '7.20', '7.23', '7.22', '2.0.0', '7.50', '5.23', '5.22', '5.21', '5.20', '4.6.4', '3.0.0', '3.0.1', '6.19', '6.18', '6.13', '6.12', '7.41', '7.40', '6.17', '6.16', '6.15', '7.44', '5.12', '5.13', '5.10', '5.11', '5.16', '5.17', '5.14', '5.15', '5.18', '5.19', '5.0', '5.1', '5.2', '5.3', '5.4', '5.5', '5.6', '5.7', '5.8', '5.9', '6.1', '7.43', '7.42', '6.11', '6.10', '6.0', '4.6.9', '4.6.8', '4.6.7', '4.6.6', '4.6.5', '6.14', '4.6.3', '4.6.2', '4.6.1', '4.6.0', '4.4.1', '4.4.0', '4.4.3', '4.4.2', '4.2.0', '6.22', '6.20', '6.21'] 
t.sort(key=lambda s: map(int, s.split('.'))) 
print(t[-1]) 

См Python 2.7 demo

в качестве альтернативы, вы можете использовать понимание внутри sort:

t.sort(key=lambda x: [int(n) for n in x.split(".")]) 

См another Python demo

Смежные вопросы