Python正则表达式(如果存在)或在Zapier工作流中

2024-09-29 03:24:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用zapier创建自定义工作流。它需要使用zapier格式化程序解析给定的文本,zapier格式化程序使用Python正则表达式

我使用的python正则表达式是

(?P<action>My-DATA)\s+:desc:(?P<desc>.*):\s+:priority:(?P<priority>.*):\s+:label:(?P<lbl>.*):

针对传入的文本

My-DATA :desc:I would like to get details from https://mydata.org/this-is-my-data: :priority:3: :label:data:

有两件事我不知道如何才能做到。每个节都用:分隔,节的名称也用:包装

有时会发生这样的情况,文本将在这样的部分中没有结尾:My-DATA :desc:I would like to get details from https://mydata.org/this-is-my-data :priority:3 :label:data

此文本在每个节的末尾缺少:,但每个新节始终以:开头,后跟节的名称

我正在试图找出一个正则表达式,它仍然可以像这个正则表达式一样工作,不管有没有结尾部分:

工作正则表达式示例位于https://regex101.com/r/T2UJcP/2

任何帮助都将不胜感激


Tags: tohttps文本程序datagetmydetails
2条回答

您可以将:?添加到每个节的末尾,这将表明结尾冒号是可选的。它可以匹配它,如果它在那里或没有

(?P<action>My-DATA) :desc:(?P<desc>.+):?\s+:priority:(?P<priority>.+):?\s+:label:(?P<lbl>.+):?

(?P<action>My-DATA)\s+:desc:(?P<desc>.*?):?\s+:priority:(?P<priority>.*?):?\s+:lbl:(?P<lbl>.*?):?\s*$

相关问题 更多 >