При выполнении поиска по регулярному выражению в массиве, он возвращается как пустой - PullRequest
3 голосов
/ 21 октября 2019

При выполнении поиска по регулярному выражению в массиве он возвращается как пустой

SCRIPT

array = ['GW-date45:ger-date45:mySAPgives','DC-date48ccc:date48:mySAP']

# REGEX
hostname = []
for node in array:
    hostname.append(re.findall(r'^[^-]*\K-([^:]+)', node))

for line in hostname:
    print(line)

OUTPUT

[]
[]

REGEX101

1 Ответ

3 голосов
/ 21 октября 2019

Python re не поддерживает \K construct .

Кажется, вам это даже не нужно, поскольку все, что вам нужно, - это захват значений группы 1. Используйте

import re
array = ['GW-date45:ger-date45:mySAPgives','DC-date48ccc:date48:mySAP']
hostname = []
for node in array:
    m = re.search(r'^[^-]*-([^:]+)', node)
    if m:
        hostname.append(m.group(1))

for line in hostname:
    print(line)

См. Демонстрационную версию Python . Выход:

date45
date48ccc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...