Ziper工作流程中是否存在Python正则表达式

问题描述

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

我正在使用的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

任何帮助将不胜感激。

解决方法

您可以在每个部分的末尾添加:?,以指示结束的冒号是可选的。是否可以匹配它。

(?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*$