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

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

1 голос
/ 05 апреля 2019

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

1 Ответ

1 голос
/ 05 апреля 2019

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

Для вашего примера вы можете нарезать строку с шагом 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
...