Исключить все десятизначные числа из названий
В таблице имеются данные разных компаний, в столбик, где пишется название компании, иногда попадает ИНН, состоящий из 10 цифр (1000000000-9999999999), как можно отобрать такие названия? Просто исключить все числа нельзя, т.к. в названиях компании может попадаться число.
Ответы (2 шт):
Нужно посчитать количество цифр в строке, если количество больше или равно 10, то такая строка подходит под отбор и проходит дальнейшее форматирование и удаляются 10 цифр в конце, а иначе остается, как есть
num = [int(i) for i in i if i.isdigit()]
g = len(num)
if g >= 10:
print(" ".join(i.split()[:-1]))
else:
print(i)
Регулярное выражение: [0-9]{10} - ровно десять знаков, входящих в диапазон от 0 до 9. Или \d{10}, что то же самое (\d означает любую цифру). Но будет находить и последовательности из 10 цифр внутри более длинных последовательностей из цифр, т.к. там внутри тоже есть 10 цифр подряд. Поэтому, если встречаются такие длинные "числа", и их нужно оставить, то регулярку нужно чуток подработать.