Получение вывода строки с символами \ n - PullRequest
0 голосов
/ 15 мая 2019

При очистке данных веб-сайта, я получаю ниже o / p:

['1 столовая ложка \ nvegetarian или кокосовое масло \ n1 столовая ложка \ n очищенный и измельченный свежий имбирь (из 1-дюймового куска) \ n2 гвоздики \ ngarlic, \ n3 столовые ложки \ nvegan тайская красная паста карри, такая как Thai Kitchen Сладкий картофель \ n2 \ nmedium (всего около 1 фунта), очищенный и нарезанный на 1/2-дюймовые кубики \ n1 (15 унций), может \ nchickpeas, высушенный и ополоснутый \ n1 (13 - 14 унций), может \ nfull жирное кокосовое молоко \ n1 / 2 стакана \ nwater \ n1 чайной ложки \ nkosher salt \ n1 / 4 чайной ложки \ n свежемолотого черного перца \ n1 (5 унций) мешок \ nбэби шпинат (около 5 упакованных чашек) \ nСоков из 1 средней лайма (около 2 столовых ложек) \ n Рис вареный, для сервировки (по желанию) ']

Если первый элемент - 1 столовая ложка \ nvegetarian или кокосовое масло, второй - 1 столовая ложка свежего имбиря и фарша (из 1-дюймового куска)

Итак, вы можете понять, что отдельные элементы разделены \ n, а также отдельные элементы также содержат \ n. Поэтому я совершенно запутался, как составить список отдельных ингредиентов без \ n, например:

['1 столовая ложка растительного или кокосового масла, 1 столовая ложка очищенного и измельченного свежего имбиря (из 1-дюймового куска), 2 зубчика чеснока, фарш, 3 столовые ложки веганской тайской красной пасты карри, такой как Thai Kitchen, сок от 1 средний лайм (около 2 столовых ложек), приготовленный рис, для сервировки (по желанию) ']

Для списка, который вы можете видеть, не существует определенного шаблона, например, если мы можем взять \ n, просто предшествующий любому целому числу, так как \ n есть перед приготовленным рисом, для подачи (необязательно). Если мы заменим все \ n, тогда все вхождения будут заменены. Мне нужно стереть \ n вхождения изнутри отдельного ингредиента, а также заменить \ n разделитель между двумя ингредиентами, как я показал ожидаемое o / p выше.

Фактический o / p:

['1 столовая ложка \ nvegetarian или кокосовое масло \ n1 столовая ложка \ n очищенный и измельченный свежий имбирь (из 1-дюймового куска) \ n2 гвоздики \ ngarlic, \ n3 столовые ложки \ nvegan тайская красная паста карри, такая как Thai Kitchen Сладкий картофель \ n2 \ nmedium (всего около 1 фунта), очищенный и нарезанный на 1/2-дюймовые кубики \ n1 (15 унций), может \ nchickpeas, высушенный и ополоснутый \ n1 (13 - 14 унций), может \ nfull жирное кокосовое молоко \ n1 / 2 стакана \ nwater \ n1 чайной ложки \ nkosher salt \ n1 / 4 чайной ложки \ n свежемолотого черного перца \ n1 (5 унций) мешок \ nбэби шпинат (около 5 упакованных чашек) \ nСоков из 1 средней лайма (около 2 столовых ложек) \ n Рис отварной, для сервировки (по желанию) ']

Ожидаемое о / п:

['1 столовая ложка растительного или кокосового масла, 1 столовая ложка очищенного и измельченного свежего имбиря (из 1-дюймового куска), 2 зубчика чеснока, фарш, 3 столовые ложки веганской тайской красной пасты карри, такой как Thai Kitchen, сок от 1 средний лайм (около 2 столовых ложек), вареный рис, для сервировки (по желанию) ']

1 Ответ

0 голосов
/ 15 мая 2019

Я получил что-то близкое к тому, что вы хотите, надеюсь, это поможет:

Я нашел 3 отдельных случая для замены в строке:

при разрыве строки с номером заменить на ", (number)"

при разрыве строки с заглавной буквой заменить на ", (letter)"

если разрыв строки не соответствует обеим этим категориям, замените на " "

import re

text = "['1 tablespoon\nvegetable or coconut oil\n1 tablespoon\npeeled and minced fresh ginger (from a 1-inch piece)\n2 cloves\ngarlic, minced\n3 tablespoons\nvegan Thai red curry paste, such as Thai Kitchen\n2\nmedium sweet potatoes (about 1 pound total), peeled and cut into 1/2-inch cubes\n1 (15-ounce) can\nchickpeas, drained and rinsed\n1 (13- to 14-ounce) can\nfull-fat coconut milk\n1/2 cup\nwater\n1 teaspoon\nkosher salt\n1/4 teaspoon\nfreshly ground black pepper\n1 (5-ounce) bag\nbaby spinach (about 5 packed cups)\nJuice from 1 medium lime (about 2 tablespoons)\nCooked rice, for serving (optional)']"

text = re.sub("\\n(\d)",", \g<1>", text)
text = re.sub("\\n([A-Z])", ", \g<1>", text)
text = re.sub("\\n"," ", text)

print (text)

выход: ['1 столовая ложка растительного или кокосового масла, 1 столовая ложка очищенного и измельченного свежего имбиря (из 1-дюймового куска), 2 зубчика чеснока, фарш, 3 столовые ложки веганской тайской красной пасты карри, такой как тайская кухня, 2 средних батата (всего около 1 фунта), очищенных и нарезанных на 1/2-дюймовые кубики, 1 (15 унций) банок нута, высушенных и ополоснутых, 1 (от 13 до 14 унций) можно заполнить -f в кокосовом молоке, 1/2 стакана воды, 1 чайная ложка кошерной соли, 1/4 чайной ложки свежемолотого черного перца, 1 (5 унций) пакетик шпината (около 5 упакованных чашек), сок из 1 средней лайма (около 2 столовых ложек) , Рис вареный, для сервировки (по желанию) ']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...