is_prime函数通过python中的regex(来自perl)

时间:2010-02-08 21:35:35

标签: python regex perl

我已阅读this article/^1?$|^(11+?)\1+$/ Perl正则表达式用于测试数字是否为素数。

流程:

s = '1' * your_number

如果s与正则表达式匹配,那么它不是素数。如果没有,那就是素数。

您如何将该正则表达式转换为Python的re模块?

1 个答案:

答案 0 :(得分:6)

它按原样工作(除了没有边缘的斜线,Python中不需要):

pattern = r'^1?$|^(11+?)\1+$'
re.match(pattern, '1'*10)    #matches
re.match(pattern, '1'*11)    #doesn't match

此处所需的唯一非标准正则表达式功能是反向引用(\1),Perl和Python都支持这些功能。