Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.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
Python 检查字符串是否与正则表达式的前n个字符匹配_Python_Regex_Django - Fatal编程技术网

Python 检查字符串是否与正则表达式的前n个字符匹配

Python 检查字符串是否与正则表达式的前n个字符匹配,python,regex,django,Python,Regex,Django,我有一个在Django中构建的python站点,用户将上传他们可能有权限也可能没有权限添加的文件。权限是通过一系列正则表达式模式创建的(超过1000个)。在我的网站上,我有一个地方可以让用户查看他们的权限(使用搜索过滤器和列表)。但是,我想做的是,如果用户键入一个字符串,并且该字符串匹配每个正则表达式的任何部分。我想把它列入清单 现在我有if(filter.match(pattern)){//addpattern to list} 我也尝试过搜索而不是匹配 我正在寻找的一个例子: 如果我有一个正

我有一个在Django中构建的python站点,用户将上传他们可能有权限也可能没有权限添加的文件。权限是通过一系列正则表达式模式创建的(超过1000个)。在我的网站上,我有一个地方可以让用户查看他们的权限(使用搜索过滤器和列表)。但是,我想做的是,如果用户键入一个字符串,并且该字符串匹配每个正则表达式的任何部分。我想把它列入清单

现在我有
if(filter.match(pattern)){//addpattern to list}
我也尝试过搜索而不是匹配

我正在寻找的一个例子:

如果我有一个正则表达式模式列表:

^(12345678)\.(txt)$
^(qwertyuiop)\.(txt)$
^(qwerty)\.(txt)$
^(23456)\.(txt)$
如果用户输入qwert,列表将显示
^(qwertyuiop)\.(txt)$
^(qwerty)\.(txt)$
,而如果用户输入qwertyu,列表将只显示
^(qwertyuiop)\.(txt)$
。同样,如果用户输入234,列表将显示
^(12345678)\.(txt)$
^(23456)\.(txt)$
,但如果用户输入1,列表将仅显示
^(12345678)\.(txt)$

有可能做到这一点吗? 如果是,我将如何管理它


谢谢你的帮助

re.search
应该适用于此。听上去,对于用户输入可能导致服务器崩溃的任意字符串,您并不太挑剔。如果是这样,你可以这么做

重新导入
模式=[
r“^(12345678)\.(txt)$”,
r“^(qwertyuiop)\(txt)$”,
r“^(qwerty)\.(txt)$”,
r“^(23456)\.(txt)$”,
]
过滤器=重新编译(“qwert”)
filtered_patterns=[p代表模式中的p如果filter.search(p)]

中的
将完成此项工作,
[如果在模式中输入字符串,则在模式列表中输入模式]