Si la chaîne est I am Fine
qu'il me donne la sortie comme I
.
import re
string='hello I am Fine'
print(re.search(r'[A-Z]?',string).group())
Si la chaîne est I am Fine
qu'il me donne la sortie comme I
.
import re
string='hello I am Fine'
print(re.search(r'[A-Z]?',string).group())
Les ?
spécifie que le caractère précédent ou de la classe peuvent ou non exister. Quand re.search
commence la recherche de la chaîne, il ne trouve pas cette classe au début de la chaîne ... et qui est une correspondance acceptable en raison de la ?
. Il renvoie simplement la chaîne vide.
>>> re.search(r'[A-Z]?', 'hello I am Fine').group()
''
Si vous voulez trouver la première lettre majuscule, ne pas utiliser ?
:
>>> re.search(r'[A-Z]', 'hello I am Fine').group()
'I'
Vous pouvez utiliser la findall méthode.
De docs Python , section 7.2.5.6
,
findall() matches all occurrences of a pattern, not just the first one as search() does.
Dans ton cas,
>>> re.findall(r'[A-Z]',"hello I am Fine")
['I', 'F']