Ste*_*ert 1 regex querystringparameter alteryx
我正在使用一个数据分析包,它公开了一个用于字符串解析的 Regex 函数。我正在尝试解析来自以下格式的网站的响应...
key1=val1&key2=val2&key3=val3 ...
Run Code Online (Sandbox Code Playgroud)
[键和值可能是百分比编码的,但当前返回值不是,当前返回值是标记和其他字母数字信息]。
我理解这些数据是 www-form-urlencoded,或者它可能被称为查询字符串格式。
如果不能依赖键的顺序,则目标是提取给定键的值。例如,我可能知道我应该接收的密钥之一是“令牌”,那么我可以使用什么正则表达式模式来提取密钥“令牌”的值?我已经搜索过这个,但找不到任何可以满足我需要的东西,但如果有重复的问题,请提前道歉。
在 Alteryx 中,您可以将Tokenize与包含您需要提取的部分周围的捕获组的正则表达式一起使用:
Tokenize 方法允许您指定要匹配的正则表达式,并将该部分字符串解析为单独的列(或行)。使用Tokenize方法时,要匹配整个token,如果有标记组,只返回那部分。
我将方法描述的部分加粗,证明如果存在捕获组,则只会返回这部分而不是整个匹配。
因此,您可以使用
(?:^|[?&])token=([^&]*)
Run Code Online (Sandbox Code Playgroud)
token您可以使用任何键来代替您要提取的值。
请参阅正则表达式演示。
细节
(?:^|[?&])- 字符串的开头,?或者&(如果字符串只是一个普通的键值对字符串,您可以省略?并使用(?:^|&)or (?<![^&]))token - 钥匙= - 一个等号([^&]*)- 第 1 组(这将被提取):0 或更多字符&(如果您不想提取空值,请替换*为+量词)。