Я хотел бы извлечь тип сервера из имени хоста и заменить оставшиеся символы подчеркиванием, чтобы затем использовать его с сопоставлением с шаблоном LIKE
в SQLite
Мой начальный подход был примерно таким (это исключительный вывод):
>>> host = 'webus01'
>>> location = 'us'
>>> parts = list(host.partition(location))
>>> parts
['web', 'us', '01']
>>> parts[1] = "_" * len(parts[1])
>>> parts[2] = "_" * len(parts[2])
>>> "".join(parts) + ".%"
'web____.%'
Но это не сработает, если hostname
начинается с или содержит location
имя:
>>> host = 'utilityit01'
>>> pod = 'it'
>>> parts = list(host.partition(location))
>>> parts
['utilityit01', '', '']
>>> parts[1] = "_" * len(parts[1])
>>> parts[2] = "_" * len(parts[2])
>>> "".join(parts) + ".%"
'utilityit01.%'
Тогда я думаю, что будет лучше использовать RegEx
, чтобы это совпадало только с location
перед цифрами. Функция re.sub кажется хорошим кандидатом для этой задачи, но я не уверен, как заменить все символы вместо группы соответствия в целом:
>>> import re
>>> re.sub(r'it\d+.*', '_', 'utilityit01a')
'utility_'
вывод в этом случае должен быть: utility_____.%
.