2011-06-11 12 views
8

इन नेट में आप किसी भी पत्र से मेल खाने के लिए \p{L} का उपयोग कर सकते हैं, मैं पाइथन में ऐसा कैसे कर सकता हूं? अर्थात्, मैं किसी भी अपरकेस, लोअरकेस, और उच्चारण अक्षरों से मेल खाना चाहता हूं।किसी भी यूनिकोड अक्षर से मेल खाते हैं?

+1

देखें: http://stackoverflow.com/questions/1832893/python-regex-matching-unicode-properties –

+2

तुम्हें पता है कि ' 'é'' [2.x में एक' unicode' नहीं है ] (http://farmdev.com/talks/unicode/), है ना? –

+2

'r.match (u'é') ' –

उत्तर

19

पायथन का re मॉड्यूल अभी तक यूनिकोड गुणों का समर्थन नहीं करता है। लेकिन आप re.UNICODE ध्वज का उपयोग करके अपने रेगेक्स को संकलित कर सकते हैं, और फिर वर्ण वर्ग शॉर्टेंड \w यूनिकोड अक्षरों से मेल खाएगा।

के बाद से \w भी अंक से मेल खाएगी, तो आप अपने चरित्र वर्ग से उन घटाना, अंडरस्कोर के साथ की जरूरत है:

[^\W\d_] 

किसी भी यूनिकोड पत्र से मेल खाएगी।

>>> 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

चालाक, लेकिन यह काम नहीं लग रहा है। अद्यतन देखें। मैंने http://en.wikipedia.org/wiki/List_of_Unicode_characters के ई बंद की प्रतिलिपि बनाई है, ऐसा लगता है कि यह इसे पहचानने में प्रतीत नहीं होता है। – mpen

+0

यह पूरी तरह से काम करता है, लेकिन '' '' 'यूनिकोड ऑब्जेक्ट नहीं है, यह बाइट्स की एक स्ट्रिंग है। –

+0

धन्यवाद दोस्तों! डर्न यूनिकोड :) समस्या के अलावा कुछ भी नहीं। – mpen

संबंधित मुद्दे