質問

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',)
>>> 

使ってみました :アルファ:, 、しかし、それは機能していません:

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

どういうわけか一致させることができたら \w それなし [_0-9], 、しかし、私は方法がわかりません。そして、これを行う方法を見つけても、次のようなショートカットがありますか [:alpha:] Pythonで動作するのはどれですか?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top