Jeśli łańcuch jest I am Fine
ona daje mi jako wyjście I
.
import re
string='hello I am Fine'
print(re.search(r'[A-Z]?',string).group())
Jeśli łańcuch jest I am Fine
ona daje mi jako wyjście I
.
import re
string='hello I am Fine'
print(re.search(r'[A-Z]?',string).group())
W ?
Określa, że poprzedzający znak lub klasa mogą lub nie mogą istnieć. Kiedy re.search
rozpoczyna wyszukiwanie ciąg, nie znajdzie tej klasy na początku łańcucha ... i to jest dopuszczalne ze względu na mecz ?
. To jest po prostu wraca pusty łańcuch.
>>> re.search(r'[A-Z]?', 'hello I am Fine').group()
''
Jeśli chcesz go znaleźć pierwsze litery, nie należy używać ?
:
>>> re.search(r'[A-Z]', 'hello I am Fine').group()
'I'
Można użyć FindAll metody.
Od docs Pythona , sekcja 7.2.5.6
,
findall() matches all occurrences of a pattern, not just the first one as search() does.
W Twoim przypadku,
>>> re.findall(r'[A-Z]',"hello I am Fine")
['I', 'F']