Функция is_prime через регулярное выражение в python (из perl) - PullRequest
9 голосов
/ 09 февраля 2010

Я прочитал эту статью , где регулярное выражение Perl /^1?$|^(11+?)\1+$/ используется для проверки, является ли число простым или нет.

Процесс:

s = '1' * your_number

Если s соответствует регулярному выражению, то оно не простое. Если это не так, это просто.

Как бы вы перевели это регулярное выражение в модуль re Python?

1 Ответ

6 голосов
/ 09 февраля 2010

Работает как есть (кроме слешей по краям, которые не нужны в Python):

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

Единственная нестандартная функция регулярных выражений, необходимая здесь, - это обратные ссылки (\1), которые поддерживаются как в Perl, так и в Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...