如何从包含多个cookie的字符串中提取键值数据?



是否有人有一个想法的正则表达式,可以匹配多个cookie(名称,值对,由'='组合,并由';')中的字符串。到目前为止,我的设计只能匹配一个cookie。

^(?<cookie>(?<name>.+[^;])=(?<value>.*[^;])(;s*)?)+$

我希望尊重cookie可以包含的所有特殊字符。我想使用正则表达式,而不是依赖于js提供的split和其他函数。

非常感谢,

干杯!

我稍微调整了一下你的正则表达式:/(?<cookie>(?<name>[^=]+)=(?<value>[^;]+);s*)/gm

对于测试字符串:"name1=value1;name2=value2;">
这会产生匹配:

match1: name1=value1;
cookie: name1=value1;
name: name1
value: value1
match2: name2=value2;
cookie: name2=value2;
name: name2
value: value2

在这里测试:https://regex101.com/r/CNZqnj/2

编辑:
根据用户"第四只鸟"在评论中的建议进行修改。

最新更新