eşleşmeyen Python 3.0 Normal İfade

oy
47

Dize ise I am Finebana olarak çıktı veriyor I.

import re
string='hello I am Fine'
print(re.search(r'[A-Z]?',string).group())
Oluştur 28/12/2016 saat 03:09
kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
0

?Yukarıdaki karakter veya sınıf veya mevcut olmayabilir belirtir. Ne zaman re.searchdize aramaya başlar, bu dizenin başında o sınıfı bulamazsa ... ve bu çünkü kabul edilebilir bir eşleşme olduğunu ?. Bu sadece boş bir dize döndürüyor.

>>> re.search(r'[A-Z]?', 'hello I am Fine').group()
''

Eğer ilk harf bulmak istiyorsanız, bir kullanmayın ?:

>>> re.search(r'[A-Z]', 'hello I am Fine').group()
'I'
Cevap 28/12/2016 saat 03:21
kaynak kullanıcı

oy
1

Sen kullanabilirsiniz findall yöntemi.

Gönderen Python docs , bölüm 7.2.5.6,

findall() matches all occurrences of a pattern, not just the first one as search() does.

Senin durumunda,

 >>> re.findall(r'[A-Z]',"hello I am Fine")
     ['I', 'F']
Cevap 28/12/2016 saat 04:31
kaynak kullanıcı

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