2011-06-11 20 views
8

In. Net \p{L}'u herhangi bir harfi eşleştirmek için kullanabilirsiniz, Python'da nasıl yapabilirim? Yani, büyük harf, küçük harf ve aksanlı harflerle eşleştirmek istiyorum.Herhangi bir unicode mektubu eşleştirin mi?

+1

Bkz: http://stackoverflow.com/questions/1832893/python-regex-matching-unicode-properties Sen ' 'é'' [2.x bir' unicode' olmadığını biliyoruz –

+2

] (http://farmdev.com/talks/unicode/), değil mi? –

+2

Denemeyi deneyin (u'é ') ' –

cevap

19

Python'un re modülü henüz Unicode özelliklerini desteklemiyor. Ancak regex'inizi re.UNICODE bayrağını kullanarak derleyebilirsiniz ve daha sonra \w kestirme karakter sınıfı da Unicode harfleriyle eşleşecektir. \w da basamak maç olacak yana

, daha sonra çizgi ile birlikte, karakter sınıfından olanlar çıkarmak gerekir:

[^\W\d_] 

herhangi bir Unicode harfi eşleşir.

>>> import re 
>>> r = re.compile(r'[^\W\d_]', re.U) 
>>> r.match('x') 
<_sre.SRE_Match object at 0x0000000001DBCF38> 
>>> r.match(u'é') 
<_sre.SRE_Match object at 0x0000000002253030> 
+0

Zeki, ama işe yaramıyor. Güncellemeye bakın. Bunu http://en.wikipedia.org/wiki/List_of_Unicode_characters adresinden kopyaladım, fark etmiyor gibi görünüyor. – mpen

+0

Mükemmel çalışır, ancak bir Unicode nesnesi değil, bir bayt dizesidir. –

+0

Teşekkürler çocuklar! Darn unicode :) Hiçbir şeyden başka sorun çıkarır. – mpen

İlgili konular