Строковые методы больше информации
Для вашего примера вы можете нарезать строку с шагом 2, проверяя каждый раз, является ли она цифрой / буквой:
.isdecimal
проверяет наличие символов, составляющих системы счисления 10 (* 9).
.isalpha
проверяет наличие букв (AZ)
test_good = 'L5L5L5'
test_bad = 'LLLLLL'
def check_string(test):
if test[0::2].isalpha() and test[1::2].isdecimal():
return True
else:
return False
Testit out:
check_string(test_good)
>>>True
Отрицательный тест:
check_string(test_bad)
>>>False
Regex больше информации regexr
Regex выполняет операции сопоставления с образцом и многое другое.В приведенном ниже примере я заблаговременно скомпилировал шаблон, чтобы он выглядел чистым и мог при необходимости использоваться повторно.
Я также использую re.fullmatch()
, который требует совпадения всей предоставленной строки, а не только одной ее части.Сам по себе он вернет None
или объект сопоставления, поэтому я проверяю, существует ли он (имеется в виду, что он сопоставлен), и возвращает True, а если нет (нет), возвращает False.
import re
def match(test):
re_pattern = re.compile('[A-Z][0-9][A-Z][0-9][A-Z][0-9]')
if re.fullmatch(re_pattern, test):
return True
else:
return False