Вопрос по регулярным выражениям. Удаление 0 не из всей строки
Есть такая строка Afghanistan X 03/20/20 , как использовав re можно удалить 0 из строки не трогая 20
Ответы (1 шт):
Автор решения: Евгений
→ Ссылка
Вы можете найти любой ноль, перед которым не двойка и заменить его на то, что идёт перед ним. Поскольку замена может сопровождаться образованием новой пары с нулём, нужно выполнять циклы замены, пока такие пары ещё есть. Для проверки применил функции как к вашей строке, так и просто к строке из чисел, в которой были убраны все нули, кроме тех, перед которыми стоит 2
import re
s = 'Afghanistan X 03/20/20'
s_test = '230130230100300402120020304001203'
def clear_zero(s) -> str:
t = re.findall(r'[^2]0', s)
while t:
for elem in t:
s = re.sub(elem, elem[0], s)
t = re.findall(r'[^2]0', s)
return s
print(s, clear_zero(s), sep='\n')
print(s_test, clear_zero(s_test), sep='\n')