Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.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正则表达式迭代_Python_Regex_Iteration_Combinations - Fatal编程技术网

所有组合的Python正则表达式迭代

所有组合的Python正则表达式迭代,python,regex,iteration,combinations,Python,Regex,Iteration,Combinations,我对regex不熟悉。我正在使用Python 2.7和BeautifulSoup4。我想迭代一个特定的正则表达式 所需输出: 长度:5,表达式:[a-zA-Z0-9!&#%@] 应尝试所有可能的组合,例如: [“aaaaa”,“aaaab”,“aaaac”,“aaaaz”,“aaaaa”,“aaaaz”,“aaaa0”,“aaaa9”,“aaaa!”,“aaaa!!”] 此外,这也应该是可能的。如果表达式为橙色\d{1} ['orangea','oranges']] 我试过这个: rege

我对regex不熟悉。我正在使用Python 2.7和BeautifulSoup4。我想迭代一个特定的正则表达式

所需输出:

长度:5,表达式:[a-zA-Z0-9!&#%@]

应尝试所有可能的组合,例如:
[“aaaaa”,“aaaab”,“aaaac”,“aaaaz”,“aaaaa”,“aaaaz”,“aaaa0”,“aaaa9”,“aaaa!”,“aaaa!!”]

此外,这也应该是可能的。如果表达式为橙色\d{1}

['orangea','oranges']]

我试过这个:

 regexInput = "a-z0-9"
 #regexInput = "a-zA-Z0-9!@#$%^&"
 comb = itertools.permutations(regexInput,passLength)
 for x in comb:
    ''.join(x)

我意识到这是一个完全错误的方法,因为这些只是排列。请帮忙。很抱歉解释得不好,非常沮丧。

置换或组合的Itertools函数将一系列元素作为第一个参数。它无法为您生成序列(从
a-z
abc…xyz
)。幸运的是,
string
提供了一些常量,如
ascii_字母
,它们包含
a-zA-Z

如果您的目标是解释正则表达式并生成每个案例。。。这很难,你应该解释一下原因?在我们继续之前

如果您只想获得字母组合:

import string
from itertools import combinations_with_replacement

result = combinations_with_replacement(string.ascii_letters, 5)

#comb = [''.join(n) for n in result] # warning, heavy processing

print [''.join(result.next()) for _ in range(10)]
# > ['aaaaa', 'aaaab', 'aaaac', 'aaaad', 'aaaae', 'aaaaf', 'aaaag', 'aaaah', 'aaaai', 'aaaaj']

您可以将
string.ascii_字母
替换为任何系列的字符。

那么您想获得正则表达式可以生成的所有单词吗?也就是说,正则表达式可以检测到的所有单词?是的,对于这一点,我甚至不知道我在谷歌的搜索查询应该是什么。此外,它就像一本愚蠢的字典,检查所有可能的长度组合。除此之外,它还应该检查符号和数字。请不要否决投票。我正在寻求真正的帮助。如果之前问过这个问题,请将其标记为重复。如果是新的,它可能恰好是一条有趣的线索。@AakashShah如果这回答了您的问题,那么将其标记为已接受。否则,请尝试解释答案中缺少的内容。@AakashShah-我编辑了我的答案,以指出您使用itertools的错误。@Cyrbil感谢您的快速回复。你的解释完全符合我的问题。我正在制作一个验证码机器人阅读器。我需要为参考表建立一个完整的数据库。如果我可以用regex来做,我不介意让它运行几个月,直到它完成数据库文件。这就是我没有接受你答案的原因。你导入了带有替换项的
组合,但将其用作
itertools。带有替换项的组合