Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 验证字符串的正则表达式只有基于cookie的数据_Python_Regex - Fatal编程技术网

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+=[^;]+)*$,或-如果
    是可选的-
    ^\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是正确的,请更新答案,我会接受,谢谢