Нужно знать, содержит ли значение 3 буквы и 3 цифры

Я работаю с данными о номерных знаках автомобилей из моей страны, и мне нужно проверить, нет ли ошибок в написании номерного знака. Текущая и правильная форма состоит из трех букв и трех цифр (AAA000), но я видел такие значения, как одна буква или все цифры. Пока я могу только знать, все ли это цифры или буквы. Извините, у меня нет кода, чтобы поделиться, я все еще слишком нуб.

Нужно знать, содержит ли значение 3 буквы и 3 цифры

Регулярное выражение -- re.match(r"[A-Z]{3}\d{3}", "AAA000")

Brendan Abel 17.03.2022 22:44

Может ООО003?

Rich Farmbrough 18.03.2022 17:14
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
55
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Эта функция должна решить вашу проблему:

df["Placa"].apply(lambda x: True if x[:3].isalpha() and x[3:].isdigit() and len(x) == 6 else False)
isalpha верно для строчных букв и некоторых символов Юникода. Вероятно, это не то, что хочет ОП.
William 17.03.2022 23:05
Ответ принят как подходящий

Предположим, что пластина - это список, вы можете сделать это с помощью регулярного выражения:

>>> import re
>>> plates = ['000003', 'TPU553', 'TPU374', 'SVM978']
>>> list(filter(lambda x : re.match(r'\D{3}\d{3}',x),plates))
['TPU553', 'TPU374', 'SVM978']
[A-Z]{3} было бы лучше, чем \D{3}, поскольку \D соответствует гораздо большему, чем просто буквам
mozway 17.03.2022 22:59

также обратите внимание, что шаблон будет соответствовать ABC123#.

William 17.03.2022 23:02

Это мой взгляд на ваш вопрос. Сделал функцию, которая проверяет, являются ли 3 первых символа буквами и так далее со следующими 3 символами.

def checkcarplate(carplate):
    for i in range(len(carplate)):
        if i<3:
            if not carplate[i].isalpha():
                print('error')
                break
        elif i>2:
            if not carplate[i].isdigit():
                print('error')
                break
            elif i==len(carplate)-1:
                print('ok')    
carplate = "A1C123"
checkcarplate(carplate)
carplate = "ABC123"
checkcarplate(carplate)

Как сейчас написано, ваш ответ неясен. Пожалуйста, редактировать, чтобы добавить дополнительную информацию, которая поможет другим понять, как это относится к заданному вопросу. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.

Community 18.03.2022 03:37

Необходимо проверить длину пластины. Если он короче или равен 3 (например, «AB»), он ничего не напечатает. Если он длиннее 6, например «ABC12345», будет напечатано «ОК». Вместо «elif i>2:» я бы предложил «else:» — «если» уже означает, что это 3 или более. См. Также комментарии Уильяма к другим ответам.

Rich Farmbrough 18.03.2022 17:19

Другие вопросы по теме