如果存在 Python 正则表达式,或者在 Zapier 工作流程中
Posted
技术标签:
【中文标题】如果存在 Python 正则表达式,或者在 Zapier 工作流程中【英文标题】:Python regex if present or else in Zapier workflow 【发布时间】:2020-12-24 20:33:19 【问题描述】:我正在使用 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
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:(?P<action>My-DATA)\s+:desc:(?P<desc>.*?):?\s+:priority:(?P<priority>.*?):?\s+:lbl:(?P<lbl>.*?):?\s*$
【讨论】:
【参考方案2】:您可以在每个部分的末尾添加:?
,这表明结尾冒号是可选的。存在与否都可以匹配。
(?P<action>My-DATA) :desc:(?P<desc>.+):?\s+:priority:(?P<priority>.+):?\s+:label:(?P<lbl>.+):?
【讨论】:
我试过了,但发生的情况是:
成为该部分文本的一部分。检查这个。请检查此regex101.com/r/T2UJcP/4
使用可以为 0 或更多的 *
怎么样? regex101.com/r/T2UJcP/5以上是关于如果存在 Python 正则表达式,或者在 Zapier 工作流程中的主要内容,如果未能解决你的问题,请参考以下文章