首页 > 解决方案 > Zapier 问题中的 Python 正则表达式

问题描述

我正在尝试从销售人员那里获取一个具有换行符的字段,并在 zapier 中使用 python 步骤提取单词和标点符号。这是我的代码,但它返回和空字符串。如果有更好/更简单的方法让我知道,我对任何代码都非常陌生,并且科学怪人通过谷歌搜索将其结合在一起。

import re

string = input_data['ac']

regex = r"^[a-z,A-Z].*[?.!]$"

cleaned = re.findall(regex, string)

return [{'cleaned': cleaned}]

这是 2 张图片,原始评论和当前结果,我可以正常工作,但想通过更新代码来保留标点符号。

原始评论

当前结果

JSON解析器错误

标签: pythonregexzapier

解决方案


下面只是通过查找一个字母然后扫描直到找到一个句子终止字符来查找句子。

import re

s = input_data['ac'] 

# remove multiple, consecutive carriage returns and/or newlines
s = re.sub(r'[\r\n]+', '', s)

regex = r"""(?x)   # verbose flag
[A-Za-z]    # a letter
[^?.!]*     # one or more non-sentence-ending characters or .*? (non-greedy)
[?.!]       # a sentence-ending character
"""

cleaned = re.findall(regex, s)
result = [{'cleaned': cleaned}] 
#return result # only legal in a function

正则表达式演示


推荐阅读