正则表达式从 Alteryx 中具有特定模式的字符串中提取数字

Regex extract number from a string with a specific pattern in Alteryx

我有这样的字符串,看起来像 url

mainpath/path2/abc/PI 6/j

我需要从字符串中获取数字以及 PI

主要问题是 PI 部分的位置不会始终相同。有时它可能在最后。有时在中间。

那么如何使用正则表达式提取该数字? 我真的被这个困住了

如果您使用的是 Alteryx...假设您的字段名称是 [s] 并且您正在寻找 [f](在您的示例中,[f] 的值是 "PI")... 那么您可以通过首先创建一个新字段 [tmp] 作为:

首先找到 /PI 的公式工具
SubString([s],FindString([s],"/"+[f])+1)

然后创建您想要的字段 [target]:

SubString([tmp],0,FindString([tmp],"/"))

从那里 运行 [target] 通过 "Text to Columns" 工具在 space 上拆分,这将为您提供 "PI" 和“6”。

就像使用 RegEx Tool 一样简单。 /PI (\d+) 的正则表达式和 "Parse" 的输出方法应该可以解决问题。