【问题标题】:Regex parse with alteryx使用 alteryx 进行正则表达式解析
【发布时间】:2015-05-16 18:50:00
【问题描述】:

其中一列的数据如下,我只需要郊区名称,不需要州或邮政编码。

我正在使用 Alteryx 并尝试了正则表达式 (\<\w+\>)\s\<\w+\>,但只在新列中获得了几条记录。

输入:

CABRAMATTA          
CANLEY HEIGHTS      
ST JOHNS PARK       
Parramatta NSW 2150 
Claymore 2559       
CASULA
  

输出

CABRAMATTA          
CANLEY HEIGHTS      
ST JOHNS PARK       
Parramatta
Claymore
CASULA        

【问题讨论】:

  • 你的问题不清楚。
  • 我正在尝试使用 alteryx 修剪州和邮政。请仔细查看输入和输出记录。对于 Parramatta,我需要删除 NSW 和 2150。
  • 是的,我明白了。只是您忘记用精确(即技术)术语来定义“州”和“邮政”。

标签: regex alteryx


【解决方案1】:

此正则表达式匹配所有字母单词,最多但不包括澳大利亚州缩写(因为地址显然是澳大利亚):

( ?(?!(VIC|NSW|QLD|TAS|SA|WA|ACT|NT)\b)\b[a-zA-Z]+)+

demo

负面展望包括一个单词边界,以允许以州缩写开头的郊区(参见演示)。

【讨论】:

    【解决方案2】:

    扩展 Bohemian 的答案,您可以使用分组在 alteryx 中执行 REGEXP REPLACE。所以:

    REGEX_Replace([Field1], "(.*)(\VIC|NSW|QLD|TAS|SA|WA|ACT|NT)+(\s*\d+)" , "\1")
    

    这将抓取与第一组匹配的任何内容(因此只是郊区)。第二组和第三组匹配状态和邮编。不是一个完美的正则表达式,但应该可以帮助您完成大部分工作。

    【讨论】:

      【解决方案3】:

      我认为这个工作流程会对您有所帮助:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-11
        • 2011-03-17
        • 2015-09-06
        • 2012-07-08
        • 2020-03-05
        • 1970-01-01
        • 1970-01-01
        • 2014-07-25
        相关资源
        最近更新 更多