Comment vérifier si une chaîne correspond à ce modèle?
Lettre majuscule, chiffre (s), lettre majuscule, chiffre (s) ...
Exemple, ceux-ci correspondraient:
A1B2
B10L1
C1N200J1
Ce ne serait pas le cas ('^' indique un problème)
a1B2
^
A10B
^
AB400
^
python
regex
string-matching
DanielTA
la source
la source
^([A-Z]\d+){1,}$
comme ça?B
et non avecA
.A
etB
les petites lettres sont-elles exactes?A10b
etaB400
?Réponses:
Modifier: Comme indiqué dans les commentaires
match
, ne vérifie que les correspondances au début de la chaîne tandis quere.search()
correspondra à un modèle n'importe où dans la chaîne. (Voir aussi: https://docs.python.org/library/re.html#search-vs-match )la source
re.match
:If zero or more characters at the beginning of string match the regular expression pattern
. J'ai juste passé environ 30 minutes à essayer de comprendre pourquoi je ne pouvais pas faire correspondre quelque chose à la fin d'une chaîne. On dirait que ce n'est pas possible avecmatch
, n'est-ce pas? Pour cela, çare.search(pattern, my_string)
marche quand même.^
au début lorsque vous utilisezmatch
. Je pense que c'est un peu plus compliqué que cette explication très simple, mais je ne suis pas clair. Vous avez raison, cependant, cela commence au début de la chaîne.Bon mot:
re.match(r"pattern", string) # No need to compile
Vous pouvez l’évaluer
bool
si nécessairela source
import re
la première lignere.match
dans le contexte d'unif
, mais vous devez utiliserbool
si vous l'utilisez ailleurs?re.match
. Il ne correspond qu'au début d'une chaîne. Jetez un oeil à lare.search
place.if
que la correspondance n'est pas vérifiéeNone
.S'il vous plaît essayez ce qui suit:
la source
la source
les expressions régulières rendent cela facile ...
[A-Z]
correspondra exactement à un caractère entre A et Z\d+
correspondra à un ou plusieurs chiffres()
grouper des choses (et aussi renvoyer des choses ... mais pour l'instant, pensez à les regrouper)+
sélectionne 1 ou plusla source
Je crois que cela devrait fonctionner pour un modèle de nombre majuscule .
la source