Я пытаюсь преобразовать целые числа, содержащиеся в строке типа "15m", в integer.
С помощью приведенного ниже кода я могу добиться того, чего хочу. Но мне интересно, есть ли для этого лучшее решение или функция, о которой я не знаю, которая уже реализует это.
s = "15m"
s_result = ""
for char in s:
try:
i = int(char)
s_result = s_result + char
except:
pass
result = int(s_result)
print result
Этот код будет выводить ниже результат:
>>>
15
Возможно, такого «лучшего» решения нет, но хотелось бы увидеть другие решения, например, использование regex.






Я нашел хорошее решение, используя регулярное выражение.
import re
result = int(re.sub('[^0-9]','', s))
print result
Что приводит к:
>>>
15
вы также можете использовать вместо него \d. int(re.sub('[^\d]','', s))
Вы также можете сопоставить одну или несколько цифр с начала строки ^\d+
import re
regex = r"^\d+"
test_str = "15m"
match = re.search(regex, test_str)
if match:
print (int(match.group()))
Хороший ответ! Результатом здесь все равно будет строка, поэтому вы можете преобразовать ее в целое число.