正则表达式从 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" 的输出方法应该可以解决问题。
我有这样的字符串,看起来像 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" 的输出方法应该可以解决问题。