¿Cómo verifico 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
^
python
regex
string-matching
DanielTA
fuente
fuente

^([A-Z]\d+){1,}$¿Me gusta esto?By no conA.AyBson minúsculas ¿verdad?A10byaB400?Respuestas:
Editar: como se señaló en los comentarios
match, solo se comprueban las coincidencias al comienzo de la cadena, mientrasre.search()que coincidirá con un patrón en cualquier lugar de la cadena. (Ver también: https://docs.python.org/library/re.html#search-vs-match )fuente
re.match:If zero or more characters at the beginning of string match the regular expression pattern. Pasé como 30 minutos tratando de entender por qué no podía hacer coincidir algo al final de una cadena. Parece que no es posible conmatch, ¿verdad? Sinre.search(pattern, my_string)embargo , para eso funciona.^al principio cuando lo usasmatch. Creo que es un poco más complicado que esa explicación muy simple, pero no estoy claro. Sin embargo, tienes razón en que comienza desde el principio de la cadena.Un trazador de líneas:
re.match(r"pattern", string) # No need to compilePuedes evaluarlo como
boolsea necesariofuente
import recomo la primera líneare.matchen el contexto de unif, pero tienes que usarloboolsi lo estás usando en otro lugar?re.match. Solo coincide al comienzo de una cadena. Echa un vistazo a sure.searchlugar.ifverifica que no haya coincidenciaNone.Por favor intenta lo siguiente:
fuente
fuente
las expresiones regulares hacen que esto sea fácil ...
[A-Z]coincidirá exactamente con un personaje entre A y Z\d+coincidirá con uno o más dígitos()agrupar cosas (y también devolver cosas ... pero por ahora solo piense en ellas agrupando)+selecciona 1 o másfuente
Creo que debería funcionar para un patrón de mayúsculas y números .
fuente