Как извлечь число, обрамлённое префиксом и суффиксом?
Есть константные строковые префикс и суффикс. Приходит динамическая строка вида "положительное целое число, обрамлённое префиксом и суффиксом". Надо достать это число в переменную типа int.
Можно ли сделать это проще/лучше?
prefix = '['
suffix = ']'
x = prefix + str(42) + suffix
print(int(x.removeprefix(prefix).removesuffix(suffix)))
Например, 1 проходом удалить префикс и суффикс. Или, в предположении что префикс и суффикс односимвольные, сразу преобразовывать в int, игнорируя символы префикса и суффикса, без манипуляций со строками.
Ответы (2 шт):
Автор решения: MaxU
→ Ссылка
Универсальный вариант с использованием RegEx - удаляем из строки все "не цифры":
import re
res = int(re.sub(r"\D", "", x))
Вариант для заранее известных префикса и суффикса любой длины:
res = int(x[len(prefix):-len(suffix)])
Вариант для любых односимвольных префикса и суффикса:
res = int(x[1:-1])