繁体   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