Проверьте, соответствует ли строка шаблону

Как проверить, соответствует ли строка этому шаблону?

Верхняя буква, число (число), прописная буква, число (ы)...

Пример: они будут соответствовать:

A1B2
B10L1
C1N200J1

Это не будет ('^' указывает на проблему)

a1B2
^
A10B
   ^
AB400
^

Ответ 1

import re
pattern = re.compile("^([A-Z][0-9]+)+$")
pattern.match(string)

Изменение: Как было отмечено в комментарии match проверок только для матчей в начале строки, а re.search() будет соответствовать шаблону в любом месте строки. (См. Также: https://docs.python.org/library/re.html#search-vs-match).

Ответ 2

One-liner: re.match(r"pattern", string) # No need to compile

import re
>>> if re.match(r"hello[0-9]+", 'hello1'):
...     print('Yes')
... 
Yes

Вы можете оценить его как bool если это необходимо

>>> bool(re.match(r"hello[0-9]+", 'hello1'))
True

Ответ 3

Попробуйте следующее:

import re

name = ["A1B1", "djdd", "B2C4", "C2H2", "jdoi","1A4V"]

# Match names.
for element in name:
     m = re.match("(^[A-Z]\d[A-Z]\d)", element)
     if m:
        print(m.groups())

Ответ 4

import re
import sys

prog = re.compile('([A-Z]\d+)+')

while True:
  line = sys.stdin.readline()
  if not line: break

  if prog.match(line):
    print 'matched'
  else:
    print 'not matched'

Ответ 5

регулярные выражения делают это легким...

[A-Z] будет соответствовать точно одному символу между A и Z

\d+ будет соответствовать одной или нескольким цифрам

() группировать вещи (а также возвращать вещи... но на данный момент просто подумайте об их группировке)

+ выбирает 1 или более

Ответ 6

  
import re

ab = re.compile("^([A-Z]{1}[0-9]{1})+$")
ab.match(string)
  


Я считаю, что это должно работать для шаблона верхнего, число.