Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
Regex 10个字符的字母数字字符串的正则表达式_Regex_Django - Fatal编程技术网

Regex 10个字符的字母数字字符串的正则表达式

Regex 10个字符的字母数字字符串的正则表达式,regex,django,Regex,Django,我需要为url.py文件编写一个表达式 get变量var可以是10个字符的字母数字字符串 链接看起来像这样 http://127.0.0.1:8000/?var=fea40u7b94 也许你可以在你的代码里试试这个 /结果是,当您添加边缘案例时,它会变得稍微复杂一些,因此我将对此提供一个答案: [&?]var=((?:%[\dA-Fa-f]{2}|[^&%]){10})(?:&|$) 见 基本上,这将在参数过程中的任何一点匹配var,而不匹配othervar=,它将确

我需要为url.py文件编写一个表达式

get变量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之后出现? %[\dA-Fa-f]{2}-在百分号后匹配一个十六进制代码,以将url编码的字符作为单个字符。 [^&%]-任何不是百分号或符号的符号 ?:%[\dA-Fa-f]{2}|[^&%]{10}-非捕获组,获取十六进制码或百分号或安培数,精确10次 ?:%[\dA-Fa-f]{2}|[^&%]{10}-捕获我在最后一点中解释的内容 ?:&|$-以符号结尾或字符串或行的结尾
您可以将var的请求字符串值分组


你试过什么正则表达式?你还没有让我们自己回答这个问题。我建议你自己回答这个问题。看看量词和字符组Sedge的情况:如果URL编码的字符包含在其中,会发生什么?假设有一个urlhttp://127.0.0.1:8000/?var=%66%65%61%74%32%38%33%38%39%31 -这意味着http://127.0.0.1:8000/?var=feat283891,但正则表达式如何处理?你想让它来处理吗?更多的例子会更好。当向url提供2个变量时,工作流应该是什么?http://127.0.0.1:8000/?var=feat283891&othervar=fea40u7b94I 试试urlr'^?P\w+{10}$',我只需要一个变量这将绝对匹配任何等于后的任何内容。如果不是已经提供的var呢?他们还要求将字符限制为10个,始终正好是10个字符,这将接受任意数量的字符。问题中没有提到其他边缘情况,例如othervar,这将与之匹配,如果url中还包含其他参数,该怎么办?那么url编码的字符呢?即使它们根本不必是,它们也有可能是什么呢http://127.0.0.1:8000/?othervar=fea40u7b94&xyz=ewewv7832h? 当它不应该的时候,这会很好地匹配它。基尔塔纳,谢谢,我会试试的。但我不明白为什么我的问题会被提出?我不太懂英语。我问错了什么?嗨,尼克,这里是stackoverflow,我们基本上都是自己解决问题,然后在这里问我们什么时候卡住了。在您的问题中,您没有共享您尝试过的代码。
>>> 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']