gpt4 book ai didi

Python 2.7 中用于 HTTP GET header 的正则表达式匹配

转载 作者:可可西里 更新时间:2023-11-01 17:25:13 26 4
gpt4 key购买 nike

我正在尝试构建一个匹配如下的正则表达式:

  • 除冒号或空格外的一个或多个以冒号结尾的字符
  • 后跟一个空格
  • 后跟一个或多个任意字符(冒号或空格除外)
  • 紧跟/r/n

如上所述,这是针对 HTTP GET 请求的,因此以下任何一种都可以:

  • 主机:www.stackoverflow.com/r/n
  • a-b-sads&^*@hgsdafAS&FTD: sjal;dfh9S^&D^F&(SDfsdgafs/r/n

以下不会:

  • 主办方:www.stackoverflow.com
  • H:o:s:t: www.stackoverflow.com
  • 主机:www.:::stackoverflow.com
  • 主机:www.stackoverflow.com/n

我目前正在使用 re.compile(r"^.{1,}: .{1,}[/r/n]$") 但我不确定如何从中排除冒号字符串的某些子集。

编辑: 我相信我想要开始的是 ^ 来表示字符串的开头。然后,我想要一个或多个除了冒号以外的任何字符,所以 .{1,},但我不确定如何从该列表中排除冒号。然后我想要一个冒号和一个空格,所以只是 :,然后是除冒号 .{1,} 之外的任何字符,与之前排除冒号的问题相同。最后,我希望它以 [\r\n]$ 结尾。这似乎仍然不起作用,即使我排除了无冒号字符的要求。所以像 ^.{1,}: .{1,}\r\n$ 这样的东西,但我仍然需要弄清楚如何排除冒号。

最佳答案

  1. {1,} 就是 +
  2. 排除冒号由 [^:]* 完成
  3. 如果要排除空格和冒号,请使用 [^ :]
  4. 在\r\n 之后用 $ 捕获字符串的结尾对我来说似乎很奇怪,这意味着单个字符串以 eoln 结尾并且后面没有任何内容(我也希望你知道 unix 和 windows 之间的区别)<
  5. 另外:eoln 是\r\n,将某些内容放在方括号中意味着所包含的任何一个字符都将匹配,这不是您需要的

总的来说,以下应该有效

^([^ :]+): ([^ :]+)$

在组 1 中给出 Host,在组 2 中给出 url

测试一下 here

关于Python 2.7 中用于 HTTP GET header 的正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48361950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com