Check if string matches pattern
How do I check if a string matches this pattern?
Uppercase letter, number(s), uppercase letter, number(s)...
Example, These would match:
A1B2
B10L1
C1N200J1
These wouldn't ('^' points to problem)
a1B2
^
A10B
^
AB400
^
Solution 1:
import re
pattern = re.compile("^([A-Z][0-9]+)+$")
pattern.match(string)
Solution 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
You can evalute it as bool
if needed
>>> bool(re.match(r"hello[0-9]+", 'hello1'))
True
Solution 3:
Please try the following:
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())