1

我正在使用一个数据分析包,它公开了一个用于字符串解析的正则表达式函数。我正在尝试解析来自格式为...的网站的响应

key1=val1&key2=val2&key3=val3 ...

[有可能键和值可能是百分比编码的,但当前返回值不是,当前返回值是令牌和其他字母数字信息]。

我理解这些数据是 www-form-urlencoded,或者它可能被称为查询字符串格式。

如果不能依赖键的顺序,则目标是提取给定键的值。例如,我可能知道我应该收到的键之一是“token”,那么我可以使用什么正则表达式模式来提取键“token”的值?我已经搜索过这个但找不到任何我需要的东西,但如果有重复的问题,请提前道歉。

4

1 回答 1

5

在 Alteryx 中,您可以将Tokenize与包含围绕您需要提取的部分的捕获组的正则表达式一起使用:

Tokenize 方法允许您指定要匹配的正则表达式,并将字符串的该部分解析为单独的列(或行)。使用Tokenize方法时,您希望匹配整个令牌,如果您有一个标记组,则只返回该部分

我将方法描述中证明如果有捕获组的部分加粗,将只返回这部分而不是整个匹配。

因此,您可以使用

(?:^|[?&])token=([^&]*)

您可以使用任何键来代替token您要提取的值。

请参阅正则表达式演示

细节

  • (?:^|[?&])- 字符串的开头,?或者&(如果字符串只是一个普通的键值对字符串,你可以省略?并使用(?:^|&)or (?<![^&])
  • token - 钥匙
  • =- 等号
  • ([^&]*)- 第1组(这将被提取):0个或更多字符&(如果您不想提取空值,请替换*+量词)。
于 2017-10-23T08:41:06.507 回答