簡體   English   中英

正則表達式 findall python

[英]Regular expression findall python

我有這樣的文字

{"@context":" http://schema.org ","@type":"Recipe","name":"Tartelette aux fraises et rhubarb'curd","re​​cipeCategory":"tarte aux fraises","圖片":" https://assets.afcdn.com/recipe/20160527/8530_w1024h768c1cx1941cy2911.jpg ","datePublished":"2012-10-10T08:48:00+02:00","PT0M" ,"cookTime":"PT15M","totalTime":"PT105M","re​​cipeYield":"4 personnes","re​​cipeIngredient":["250 g de fraises","150 g de farine","45 g de beurre ","40 g de sucre","1 oeuf","1 pinc\ée de sel","20 cl de rhubarbe (r\écup\ér\é de ma conception de compote)","3 oeufs"," 75 g de sucre","1 cuill\ère \à soupe de ma\ïzena"],"recipeInstructions":[{"@type":"HowToStep","text":"倒 4 個餡餅 (ou une grande tarte mais je pr\éf\ère les tartelettes, la p\âte sabl\ée \étant difficile \à couper :)) "},{"@type":"HowToStep","text":"Pr\âte sabl\ée \étant couper :)) sabl\ée : "},{"@type":"HowToStep","text":"Couper le beurre en petits morceaux."},{"@type":"HowToStep","text":"Mettr e tous les ingr\édients dans un Salatier et tout m\élanger \à la main (ou au robot) jusqu'\à 前 une boule homog\ène。 La r\éserver au frais au moins 1h pour pouvoir mieux l'\étaler."},{"@type":"HowToStep","text":"Pendant que la p\âte sabl\éespose, pr\éparer大黃凝乳 : "},{"@type":"HowToStep","text":"M\élanger le sucre avec le jus de rhubarbe sur feu doux, jusqu\’\à ce que le sucre soit Fodu. "},{"@type":"HowToStep","text":"一部分,dans un bol (qui Pourra aller au bain marie dans l'\étape suivante),battre la ma\ïzena avec 1 oeuf。 Lorsqu\’elle est bien dissoute, incorporer les 2 autres oeufs, toujours en fouettant。"},{"@type":"HowToStep","text":"Incorporer ensuite le jus de rhubarbe chaud en fouettant bien, le mlange00開始 \à \épaissir。 Placer le bol au bain marie et faire \épaissir sur feu doux tout en fouettant tr\ès r\éguli\èrement."},{"@type":"HowToStep","text":"Une fois qu\\est bi20 \épaisse, transf\érer dans un autre bol ou Salatier pour la refroidir。 "},{"@type":"HowToStep","text":"Pendant que le curd refroidit,cuire la p\âte sabl\ée \à blanc。 Etaler la p\âte sabl\ée et la r\épartir dans les 4 moules \à tartelette(ou dans un grand moule \à tarte)。 Puis enfourner entre 10 et 15 min(en fonction de votre 4)\à 200\°C(恆溫器 6-7)。"},{"@type":"HowToStep","text":"Laisser refroidir les Fonds une bonne demi heure."},{"@type":"HowToStep","text":"Monter les tartelettes : "},{"@type":"HowToStep","text":"-mettre une couche de rhubarb'豆腐乳酪醬"},{"@type":"HowToStep","text":"- 紫菜等\équeuter les fraises"},{"@type":"HowToStep","text":"- les couper en 2 et les disposer sur le rhubarb'curd."},{"@type":"HowToStep","text":"-server au frais avant de servir"}],

在 RecipeInstructions 字段中,我需要將所有內容都寫在 "text": 之后。 我從來沒有使用過正則表達式,我有點迷茫。

這看起來像一個 json 對象,但它周圍沒有 [] 以使其成為實際列表。 您應該能夠將其轉換為 Python 本機字典列表並進行導航:

import json

recipe = json.loads('[' + your_text + ']')
steps = [obj["text"] for obj in recipe if obj.get("@type") == "HowToStep"] 

不過讓我擔心的是,除非您截斷文本以在此處發布,否則這可能不是格式良好的 json。 在這種情況下,您不能使用上面的代碼,而是使用這樣的正則表達式:

import re

regex = r"\"text\":\"([^\"]*)\""
matches = re.findall(regex, your_text) 

'matches' 現在應該是所有文本元素的列表。

好奇這個正則表達式是如何工作的? 這是一個模擬器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM