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

Jua*_*nti 9 python regex perl

我读过这篇文章,其中/^1?$|^(11+?)\1+$/Perl正则表达式用于测试数字是否为素数.

处理:

s = '1' * your_number
Run Code Online (Sandbox Code Playgroud)

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

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

int*_*jay 6

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

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

这里需要的唯一非标准正则表达式功能是backreferences(\1),Perl和Python都支持这些功能.