Python 验证字符串的正则表达式只有基于cookie的数据
因此,我使用下面的正则表达式Python 验证字符串的正则表达式只有基于cookie的数据,python,regex,Python,Regex,因此,我使用下面的正则表达式(\w+=([^\s]+)来验证一个字符串是否是有效的cookie字符串,对于简单的键值配对字符串,这很好,但它应该适用于下面的一些事情 Acceptable--> "key1=val1;key2=val2;" Unacceptable--> "key1=val1;;;key2=val2;;;key3=val3" 将显示任何帮助。您可以使用此正则表达式匹配一个或多个key=value对,后跟可选空格: ^(?:\s
(\w+=([^\s]+)
来验证一个字符串是否是有效的cookie字符串,对于简单的键值配对字符串,这很好,但它应该适用于下面的一些事情
Acceptable--> "key1=val1;key2=val2;"
Unacceptable--> "key1=val1;;;key2=val2;;;key3=val3"
将显示任何帮助。您可以使用此正则表达式匹配一个或多个
key=value代码>对,后跟可选空格:
^(?:\s*\w+\s*=\s*[^;]*;)+$
假设始终存在一个代码>最后。
正则表达式详细信息:
^
:开始
(?:
:启动非捕获组
\s*
:匹配0个或多个空格
\w+
:匹配1个以上的单词字符
\s*
:匹配0个或多个空格
=
:匹配一个=
\s*
:匹配0个或多个空格
[^;]+
:匹配1+个非分号字符
;
:匹配一个;
)+
:结束非捕获组<代码>+
允许此组匹配一次或多次
$
:结束
试试^\w+=[^;]+(?:;\w+=[^;]+)*$代码>,或-如果末尾的code>是可选的-^\w+=[^;]+(?:;\w+=[^;]+)*$
您可以使用:^(?:\w+=[^;]+;)+$
@anubhava:感谢您回答如何在键值对之间使用可选空格,例如key1=val1;key2=val2代码>谢谢,您的回复我尝试过切换sting,“coding=helloworld;foobar=demo;random=error”“hello=world;;;;”
此字符串失败。您能看看可以更改什么吗?由于结尾处有3个分号,因此失败。应该只有一个,即coding=helloworld;foobar=演示;随机=错误“”你好=世界代码>我做了一些更改(\s*\w+\s*=\s*\w+;)+(\s*\w+\s*=\s*\s*\w+)?
请看看这是否有意义。正确的一个是:^(?:\s*\w+\s*=\s*[^;]*)+$
最后一个1是正确的,请更新答案,我会接受,谢谢