Regex 使用Tableau提取文章中多个单词的正则表达式
我有一篇短文,我需要在表格中从中提取几个单词。全文如下: 这看起来像个可疑的账户。请看详情 在下面姓名:约翰·马修电子邮件:约翰。mathew@abc.com电话:+1 111-111-1111部门:abc 如有查询,请联络:---- 姓名、电子邮件、电话和部门在同一行中,用空格隔开。我使用了下面的正则表达式,它仅在部门中运行良好:Regex 使用Tableau提取文章中多个单词的正则表达式,regex,tableau-api,Regex,Tableau Api,我有一篇短文,我需要在表格中从中提取几个单词。全文如下: 这看起来像个可疑的账户。请看详情 在下面姓名:约翰·马修电子邮件:约翰。mathew@abc.com电话:+1 111-111-1111部门:abc 如有查询,请联络:---- 姓名、电子邮件、电话和部门在同一行中,用空格隔开。我使用了下面的正则表达式,它仅在部门中运行良好: regexp_extract([CASE DESCRIPTION],'Department : (.+)') 当我应用这一名称时,我得到: 姓名:约翰·马修电子邮
regexp_extract([CASE DESCRIPTION],'Department : (.+)')
当我应用这一名称时,我得到:
姓名:约翰·马修电子邮件:约翰。mathew@abc.com电话:+1111-111-1111
部门:abc
而不仅仅是名字。电子邮件也是如此
我如何解决这个问题 在我看来,问题在于您的正则表达式只有'(.+)'作为其捕获组,这基本上意味着“一切”(在指定的字符串之后)。由于字段都在一行上,“name”之后的所有内容都包括电子邮件、电话和部门。(正则表达式与部门一起工作,因为它是最后一件事。)
所以,为了让它正常工作,你需要给你的正则表达式一些东西,而不是让它停下来。要仅捕获名称,您需要在电子邮件标记之前停止,依此类推。差不多
Name = regexp_extract([CASE_DESCRIPTION],'Name: (.+) Email:')
email = regexp_extract([CASE_DESCRIPTION],'Email: (.+) Phone:')
phone = regexp_extract([CASE_DESCRIPTION],'Phone: (.+) Department:')
department = regexp_extract([CASE_DESCRIPTION],'Department: (.+)')
您可以在数据可视化阶段使用正则表达式,用于各种有用的事物,但是如果您有许多复杂、凌乱的文本字段,您需要尝试提取多种信息,则还应该考虑在管道中添加信息提取阶段,以便在可视化之前提取结构。至少当您从原型概念转向生产系统时。例如,在这个空间中有很多Python库,它们正是我想要的。非常感谢Hellion:)