我需要为urls.py文件组成一个表达式
get-variable var可以是10个字符的字母数字字符串。
链接看起来像这样
loadDefinitionFilesFromMenu
答案 0 :(得分:0)
事实证明,当你添加边缘情况时,它会变得稍微复杂一些,所以我会提供一个答案:
[&?]var=((?:%[\dA-Fa-f]{2}|[^&%]){10})(?:&|$)
请参阅demo
基本上,这将匹配" var"在参数过程中的任何一点,如果没有匹配" othervar =",它将确保将url编码的字符作为单个char抓取,并确保它不会抓取部分& #34;无功" (比如信息是11或20个字符长,这与该字符串不匹配,因为它检查后面的另一个参数,或字符串的结尾)。
故障:
[&?]var=
- var=
必须在&
或?
%[\dA-Fa-f]{2}
- 在百分号后匹配十六进制代码(将url编码的字符作为单个字符)。[^&%]
- 任何不是百分比或&符号(?:%[\dA-Fa-f]{2}|[^&%]){10}
- 非捕获组,获取十六进制代码或不是百分比或十字符正好10次((?:%[\dA-Fa-f]{2}|[^&%]){10})
- 捕捉我在最后一点解释的内容(?:&|$)
- 以&符号或字符串或行的结尾答案 1 :(得分:0)
您可以将var
>>> import re
>>> s
'http://127.0.0.1:8000/?var=fea40u7b94&xyz=ewewv7832h'
>>> re.findall('=(\w{10})',s)
['fea40u7b94', 'ewewv7832h']
>>> re.findall('var=(\w{10})',s)
['fea40u7b94']
答案 2 :(得分:-1)
也许您可以在代码中尝试这个。
/(?<=var\=).{10,10}(?=$)/g