Задать вопрос
@datel

Как создать паттерн для библиотеки re, в котором первая группа не будет повторяться, а вторая будет?

В заголовке не очень объяснил, сейчас нормально. Есть строка:

string = '60\napple\nbanana\ntomato\ncucumber\n120\nsofa\ntable'


Эта строка создана по примеру: (Число)\n(Множество повторяющихся случайных строк, оканчивающихся на \n))

Пример: 60 это Число, потом \n, потом идут названия овощей и фруктов, а они заканчиваются на \n

Вот мне так и нужно её разделить, но вот такой паттерн не подходит, ничего не выводит:

taken = re.findall(r'[0-9]+\n(.+\n)+', string=string)


Я знаю что + в re означает 1 и более повторений, но как это 1 и более повторений применить к паттерну внутри паттерна? Или лучше уже с

re.split('\n', string=string)

Играться?
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
Честно сказать не совсем понял, что в итоге ты хочешь сделать. Предположу что объеденить числа и фрукты в одну группу и собрать все такие группы.
taken = re.findall(r'([0-9]+\D+)', string=string)
затем легко, удалить лишние символы даже обычным питоном.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Wanted. Санкт-Петербург
До 450 000 ₽
ПРОДИС.НДТ Малаховка, пгт
от 70 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽