首页 > 解决方案 > 验证字符串的正则表达式只有基于 cookie 的数据

问题描述

所以我使用下面的正则表达式(\w+)=([^\s]+)来验证一个字符串是否是一个有效的cookie字符串,对于简单的键值配对字符串这工作正常,但它应该适用于下面的一些事情

Acceptable--> "key1=val1;key2=val2;"
Unacceptable--> "key1=val1;;;key2=val2;;;key3=val3"

任何帮助将不胜感激。

标签: pythonregex

解决方案


您可以使用此正则表达式匹配一对或多key=value;对后跟可选空格:

^(?:\s*\w+\s*=\s*[^;]*;)+$

假设;最后总是有一个。 正则表达式演示

正则表达式详细信息:

  • ^: 开始
  • (?::启动非捕获组
    • \s*: 匹配 0 个或多个空格
    • \w+: 匹配 1+ 个单词字符
    • \s*: 匹配 0 个或多个空格
    • =: 匹配一个=
    • \s*: 匹配 0 个或多个空格
    • [^;]+: 匹配 1+ 个非分号字符
    • ;: 匹配一个;
  • )+:结束非捕获组。+让这个组匹配一次或多次
  • $: 结尾

推荐阅读