ファイルでは、次の2つの文字列形式のいずれかを使用できます。
::WORD1::WORD2= ANYTHING
::WORD3::WORD4::WORD5= ANYTHING2
これは私が思いついた正規表現です:
::(\w+)(?:::(\w+))?::(\w+)=(.*)
regex.findall(..)
[(u'WORD1', u'', u'WORD2', u' ANYTHING'),
(u'WORD3', u'WORD4', u'WORD5', u' ANYTHING2')]
u''
私の最初の質問は、最初の文字列を照合するときになぜこれが空になるのかということです。
私の2番目の質問は、この正規表現を書く簡単な方法はありますか?2つの文字列は非常に似ていますが、この余分な文字列がある場合があります::WORD5
私の最後の質問は次のとおりです。ほとんどの場合、私は間に単語しかない::
ので、それで\w+
十分ですが、時々、2-WORD2
などのようなものを手に入れることができます。3-2-WORD2
これ-
が表示されます。どうすればそれをに追加でき\w+
ますか?