python - online - Verificar si la cadena coincide con el patrón
python regex replace (6)
¿Cómo puedo verificar si una cadena coincide con este patrón?
Letra mayúscula, número (s), letra mayúscula, número (s) ...
Ejemplo, estos coincidirían:
A1B2
B10L1
C1N200J1
Estos no (''^'' apunta al problema)
a1B2
^
A10B
^
AB400
^
Por favor intenta lo siguiente:
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())
las expresiones regulares hacen esto fácil ...
[AZ]
coincidirá exactamente con un personaje entre A y Z
/d+
coincidirá con uno o más dígitos
()
agrupan cosas (y también devuelven cosas ... pero por ahora solo piensen en agruparlas)
+
selecciona 1 o más
One-liner: re.match(pattern, string) # No need to compile
import re
>>> if re.match(''hello[0-9]+'', ''hello1''):
... print(''Yes'')
...
Yes
Y si no está usando en el contexto de if
o entonces, entonces debe evaluarlo con la función bool
>>> bool(re.match(''hello[0-9]+'', ''hello1''))
True
Sin embargo, sería increíble si la clase de cadenas de Python contiene un método como este.
>>> ''hello123''.regex(''hello[0-9]+'')
True
import re
ab = re.compile("^([A-Z]{1}[0-9]{1})+$")
ab.match(string)
Creo que debería funcionar para un patrón numérico en mayúsculas .
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''
import re
pattern = re.compile("^([A-Z][0-9]+)+$")
pattern.match(string)