Szabályos kifejezés Python 3.0 nem illő

szavazat
47

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())
A kérdést 28/12/2016 03:09
felhasználó
Más nyelveken...                            


2 válasz

szavazat
0

Az ?határozza meg, hogy az előző karakter vagy osztály, vagy nem létezik. Amikor re.searchelkezdi 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'
Válaszolt 28/12/2016 03:21
a forrás felhasználó

szavazat
1

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']
Válaszolt 28/12/2016 04:31
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more