使用 alteryx 进行正则表达式解析
Regex parse with alteryx
其中一列的数据如下,我只需要郊区名称,不需要州或邮政编码。
我正在使用 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
此正则表达式匹配所有字母单词,但不包括澳大利亚州的缩写(因为地址显然是澳大利亚人):
( ?(?!(VIC|NSW|QLD|TAS|SA|WA|ACT|NT)\b)\b[a-zA-Z]+)+
见demo
负面展望包括一个单词边界,以允许以州缩写开头的郊区(参见演示)。
扩展 Bohemian 的答案,您可以使用分组在 alteryx 中执行 REGEXP REPLACE。所以:
REGEX_Replace([Field1], "(.*)(\VIC|NSW|QLD|TAS|SA|WA|ACT|NT)+(\s*\d+)" , "")
这将抓取第一组中匹配的所有内容(因此只是郊区)。第二组和第三组匹配州和邮编。不是一个完美的正则表达式,但应该可以帮助您完成大部分工作。
我认为这个工作流程会对您有所帮助:
其中一列的数据如下,我只需要郊区名称,不需要州或邮政编码。
我正在使用 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
此正则表达式匹配所有字母单词,但不包括澳大利亚州的缩写(因为地址显然是澳大利亚人):
( ?(?!(VIC|NSW|QLD|TAS|SA|WA|ACT|NT)\b)\b[a-zA-Z]+)+
见demo
负面展望包括一个单词边界,以允许以州缩写开头的郊区(参见演示)。
扩展 Bohemian 的答案,您可以使用分组在 alteryx 中执行 REGEXP REPLACE。所以:
REGEX_Replace([Field1], "(.*)(\VIC|NSW|QLD|TAS|SA|WA|ACT|NT)+(\s*\d+)" , "")
这将抓取第一组中匹配的所有内容(因此只是郊区)。第二组和第三组匹配州和邮编。不是一个完美的正则表达式,但应该可以帮助您完成大部分工作。
我认为这个工作流程会对您有所帮助: