2015-09-10 4 views
9

अजगर re मॉड्यूल के documentation का कहना है कि जब re.UNICODE ध्वज सेट है, '\s' से मेल खाएगी से मेल नहीं खाता:अजगर regex ' s' यूनिकोड बीओएम (U + FEFF)

जो कुछ भी स्थान के रूप में वर्गीकृत किया गया है यूनिकोड चरित्र गुण डेटाबेस।

जहाँ तक मैं कह सकता हूं, बीओएम (यू + एफईएफएफ) classified as a space है।

हालांकि:

re.match(u'\s', u'\ufeff', re.UNICODE) 

None मूल्यांकन करता है।

क्या यह पाइथन में एक बग है या क्या मुझे कुछ याद आ रही है?

उत्तर

13

यू + एफईएफएफ यूनिकोड डेटाबेस के अनुसार एक सफेद जगह नहीं है।

विकिपीडिया केवल इसे सूचीबद्ध करता है क्योंकि यह एक "संबंधित चरित्र" है। ये व्हाइटस्पेस वर्णों के समान हैं लेकिन डेटाबेस में WSpace संपत्ति नहीं है।

इनमें से कोई भी वर्ण \s से मेल नहीं खाता है।

+0

'लेन (सी में मानचित्र के लिए सी (सीआर, रेंज (sys.maxunicode + 1)) अगर unicodedata.category (c) == 'सीएफ' और c.isspace()]) शून्य है। – jfs

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