regex - 使用 Tableau 提取段落中的多个单词的正则表达式
问题描述
我有一段话,我需要在画面中从中提取几个词。段落如下:
这看起来像是一个可疑帐户。请看下面的详细信息。姓名:John Mathew 电子邮件:john.mathew@abc.com 电话:+1 111-111-1111 部门:abc
更多咨询请联系:----
姓名、电子邮件、电话和部门在同一行,用空格隔开。我使用了以下正则表达式,它仅适用于部门:
regexp_extract([CASE DESCRIPTION],'Department : (.+)')
当我应用这个名字时,我得到:
姓名:John Mathew 电子邮件:john.mathew@abc.com 电话:+1 111-111-1111 部门:abc
而不仅仅是名字。电子邮件也是如此。
我该如何解决这个问题?
解决方案
在我看来,问题在于您的正则表达式只有 '(.+)' 作为其捕获组,这基本上意味着“一切”(在指定字符串之后)。由于字段都在一行上,“姓名”之后的所有内容都包括电子邮件、电话和部门。(正则表达式与部门一起使用,因为它是最后一行。)
因此,要使其正常工作,您需要为您的正则表达式提供除行尾以外的其他内容以停止。要仅捕获名称,您需要在电子邮件标签之前停止,依此类推。就像是
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: (.+)')
推荐阅读
- javascript - 格式数字在 ag 网格 5210.15 到 5,210.15
- svg - 如何在 SVG 中跟踪开放路径的一个边缘
- javascript - chartjs-plugin-zoom 在离线环境 javascript .js 上不起作用
- google-apps-script - 如何测试 Gsuite 用户是否允许使用插件,或者是否是超级管理员
- javascript - 如何使我的下拉选择通过它们的值更改我的总数,但除非选择,否则不会计算
- python - 如何从 json 文件中获取表模式:parse_table_schema_from_json?
- windows - Nservicebus 托管为服务,启动后立即关闭
- reactjs - Laravel Mix 4.0.7 包含 Vue
- python - 迭代 pd 数据帧以将整数更改为字符串
- c# - 使用C#调用AS400程序并从QTEMP中选择文件