Как проверить строку?

#python #string #format #postal

#python #строка #форматировать #почтовый

Вопрос:

Мне просто интересно, как можно написать код, который проверяет строку? Например, пользователь вводит почтовый индекс (строку). я должен убедиться, что она соответствует формату L # L # L # L # L-> представляет только букву, а #-> представляет только число, не десятичное … если нет, попросите пользователя ввести еще раз

Комментарии:

1. Ознакомьтесь с модулем регулярных выражений

Ответ №1:

Строковые методы дополнительная информация

Для вашего примера вы могли бы разрезать строку с шагом 2, проверяя каждую вторую, является ли это цифрой / буквой:

.isdecimal проверяет наличие символов, составляющих системы счисления с базовым значением 10 (0-9).

.isalpha проверяет наличие букв (A-Z)

 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
  

Протестируйте это:

 check_string(test_good)
>>>True
  

Отрицательный тест:

 check_string(test_bad)
>>>False
  

Регулярное выражение дополнительная информация regexr

Регулярное выражение выполняет операции сопоставления с шаблоном и действительно многое другое. В приведенном ниже примере я заранее скомпилировал шаблон, чтобы он выглядел чистым и при необходимости мог быть использован повторно.

Я также использую re.fullmatch() который требует соответствия всей предоставленной строки, а не только одной ее части. Сам по себе он вернет None или объект match, поэтому я проверяю, существует ли он (что означает, что он соответствует) и возвращает True или, если нет (None), возвращает 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
  

Комментарии:

1. @Saynab Aden если этот ответ правильный, пожалуйста, отметьте его