Wenn die Zeichenfolge I am Fine
wird es geben mir Ausgabe als I
.
import re
string='hello I am Fine'
print(re.search(r'[A-Z]?',string).group())
Wenn die Zeichenfolge I am Fine
wird es geben mir Ausgabe als I
.
import re
string='hello I am Fine'
print(re.search(r'[A-Z]?',string).group())
Die ?
gibt an, dass das vorhergehende Zeichen oder Klasse kann oder kann nicht existieren. Wenn re.search
beginnt die Zeichenfolge sucht, findet es nicht , dass die Klasse zu Beginn des Strings ... und das ist ein akzeptabler Spiel wegen der ?
. Es kehrt einfach die leere Zeichenkette.
>>> re.search(r'[A-Z]?', 'hello I am Fine').group()
''
Wenn Sie es wollen , den ersten Großbuchstaben zu finden, verwenden Sie nicht ein ?
:
>>> re.search(r'[A-Z]', 'hello I am Fine').group()
'I'
Sie können die Verwendung findall Methode.
Von Python - Dokumentation , Abschnitt 7.2.5.6
,
findall() matches all occurrences of a pattern, not just the first one as search() does.
In Ihrem Fall,
>>> re.findall(r'[A-Z]',"hello I am Fine")
['I', 'F']