Ha a húr I am Fine
, hogy ad nekem kimenet I
.
import re
string='hello I am Fine'
print(re.search(r'[A-Z]?',string).group())
Ha a húr I am Fine
, hogy ad nekem kimenet I
.
import re
string='hello I am Fine'
print(re.search(r'[A-Z]?',string).group())
Az ?
határozza meg, hogy az előző karakter vagy osztály, vagy nem létezik. Amikor re.search
elkezdi keresni a húr, akkor nem találja, hogy az osztály elején a húr ... és ez egy elfogadható mérkőzés miatt ?
. Ez egyszerűen visszatérnek üres string.
>>> re.search(r'[A-Z]?', 'hello I am Fine').group()
''
Ha azt akarjuk, hogy megtalálja az első nagybetű, ne használjon ?
:
>>> re.search(r'[A-Z]', 'hello I am Fine').group()
'I'
Használhatja a findAll módszer.
Tól Python docs , szakasz 7.2.5.6
,
findall() matches all occurrences of a pattern, not just the first one as search() does.
A te esetedben,
>>> re.findall(r'[A-Z]',"hello I am Fine")
['I', 'F']