Я манипулирую некоторыми строками, которые содержат число и символы.Входные строки такие elementX5
, elementX50
и т. Д.Я знаю, как изменить их elements_10
, elements_100
и т. Д. С помощью следующего кода:
import re
inp = ["elementX5asdl", "elementX50al;smd;l", "elementX500laknsd", "elementX5000aknsd"]
for el in inp:
tmp_usr_str = re.search("elementX50*", el).group()
tmp_usr_str = re.sub(r"elementX", "elements_", tmp_usr_str)
tmp_usr_str = re.sub(r"\d+", lambda x: str(2*int(x.group())), tmp_usr_str)
print(tmp_usr_str)
Я хотел бы пойти дальше, инвертировав подстроку, содержащую число, с подстрокой, содержащей буквы вполучить что-то вроде: 10_elements
, 100_elements
и т. д.
Я знаю, что могу разбить строку и затем составить ее снова, но есть ли более элегантный способ с использованием регулярных выражений, возможно, встраивание команды в одиниз уже существующих линий?