是python中通过正则表达式实现的素数函数(来自perl)
我已经阅读了使用Perl正则表达式测试数字是否为素数的地方 过程:是python中通过正则表达式实现的素数函数(来自perl),python,regex,perl,Python,Regex,Perl,我已经阅读了使用Perl正则表达式测试数字是否为素数的地方 过程: s = '1' * your_number 如果s与正则表达式匹配,则它不是素数。如果没有,那就是最好的 如何将该正则表达式转换为Python的re模块?它按原样工作(除了边缘没有斜线,这在Python中是不需要的): 这里唯一需要的非标准正则表达式特性是反向引用(\1),Perl和Python都支持这些特性。就在我想我已经看到了一切的时候……这里有一个更紧凑的prime测试all(范围(2,I)中d的I%d)@Mike正则表
s = '1' * your_number
如果s
与正则表达式匹配,则它不是素数。如果没有,那就是最好的
如何将该正则表达式转换为Python的re
模块?它按原样工作(除了边缘没有斜线,这在Python中是不需要的):
这里唯一需要的非标准正则表达式特性是反向引用(
\1
),Perl和Python都支持这些特性。就在我想我已经看到了一切的时候……这里有一个更紧凑的prime测试all(范围(2,I)中d的I%d)
@Mike正则表达式与反向引用匹配是NP难的:请参见,哦,我的上帝。。。这很糟糕,但令人印象深刻。谢谢,我遇到了问题,因为我忘记了rawr的r。有人能解释为什么被删除的答案是错误的(假设它被删除是因为它是错误的)?
pattern = r'^1?$|^(11+?)\1+$'
re.match(pattern, '1'*10) #matches
re.match(pattern, '1'*11) #doesn't match