मैं एक स्ट्रिंग है जहाँ से मैं 3 समूहों को निकालने के लिए चाहते हैं:मिलान केवल पायथन में एक यूनिकोड पत्र फिर से
'19 janvier 2012' -> '19', 'janvier', '2012'
महीने का नाम गैर ASCII वर्ण सकता है, इसलिए [A-Za-z]
मेरे लिए काम नहीं करता है:
>>> import re
>>> re.search(ur'(\d{,2}) ([A-Za-z]+) (\d{4})', u'20 janvier 2012', re.UNICODE).groups()
(u'20', u'janvier', u'2012')
>>> re.search(ur'(\d{,2}) ([A-Za-z]+) (\d{4})', u'20 février 2012', re.UNICODE).groups()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'groups'
>>>
मैं \w
इस्तेमाल कर सकते हैं लेकिन यह अंक से मेल खाता है और रेखांकित:
>>> re.search(ur'(\w+)', u'février', re.UNICODE).groups()
(u'f\xe9vrier',)
>>> re.search(ur'(\w+)', u'fé_q23vrier', re.UNICODE).groups()
(u'f\xe9_q23vrier',)
>>>
मैं [:alpha:] का उपयोग करने की कोशिश की, लेकिन यह काम नहीं कर रहा:
>>> re.search(ur'[:alpha:]+', u'février', re.UNICODE).groups()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'groups'
>>>
तो मैं किसी भी तरह [_0-9]
बिना \w
मेल खा सकते हैं, लेकिन मैं कैसे पता नहीं है। और यहां तक कि यदि मुझे पता चलता है कि यह कैसे करना है, तो क्या [:alpha:]
जैसे एक तैयार शॉर्टकट है जो पायथन में काम करता है?
'[: अल्फा:] 'के लिए, यह केवल एक चरित्र वर्ग के अंदर काम करता है, इसलिए सही रेगेक्स' [[: अल्फा:]] +' होगा, लेकिन पाइथन इन्हें वैसे भी समर्थन नहीं करता है। –
क्यों स्ट्रिंग पर बस .split() को कॉल नहीं करते? – yak