我需要为 urls.py 文件编写一个表达式
获取变量 var 可以是 10 个字符的字母数字字符串。
链接看起来像这样
http://127.0.0.1:8000/?var=fea40u7b94
事实证明,当您添加边缘情况时,它会变得稍微复杂一些,所以我将提供一个答案:
[&?]var=((?:%[\dA-Fa-f]{2}|[^&%]){10})(?:&|$)
看演示
基本上,这将在参数过程中的任何一点匹配“var”,而不匹配“othervar=”,它将确保将 url 编码的字符作为单个字符抓取,并确保它不会抓取部分“ var"(假设信息长度为 11 或 20 个字符,这将与该字符串不匹配,因为它会检查后面的另一个参数或字符串的结尾)。
分解:
[&?]var=
-var=
必须发生在 a&
或 a 之后?
%[\dA-Fa-f]{2}
- 在百分号后匹配十六进制代码(将 url 编码的字符作为单个字符)。[^&%]
- 任何不是百分比或&符号的东西(?:%[\dA-Fa-f]{2}|[^&%]){10}
- 非捕获组,获取十六进制码或不是百分比或与号精确 10 次((?:%[\dA-Fa-f]{2}|[^&%]){10})
- 捕捉我在最后一点中解释的内容(?:&|$)
- 以与号或字符串或行的结尾结束本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句