2013-12-08 5 views
1

Я хочу указать глобальную переменную min и max для использования в регулярной проверке идентификатора проверки подлинности.Использование операции RegEx {m, n} python, но с использованием переменных для m и n

Например, установить переменные

min=8 
max=16 
alphanumeric input 

Тогда выражение я хочу Python интерпретировать это

r'\w{8,16}\Z' 

, но я хочу использовать переменные мин и макс, а не жесткого кодирования числа в выражении ,

ответ

6

Для этого нет встроенного средства, но вы можете создать регулярное выражение с использованием строковой интерполяции. Например,

regexp = r"\w{%d,%d}\Z" % (minimum, maximum) 

Конечно, существует много других способов создания регулярного выражения, которое вы хотите. Дело в том, что вы должны сами его построить :-)

BTW, пожалуйста, не используйте имена min и max. Они встроенные функции, и используя одни и те же имена переменных будут смущать людей - в том числе, через некоторое время, вы ;-)

+0

спасибо за ответ, мин и макс были только для целей иллюстрации – mikemags1

2

Вы можете построить регулярное выражение динамически:

regex = r'\w{{{},{}}}\Z'.format(minimum, maximum) 
Смежные вопросы