在一个文件中,我可以有以下两种字符串格式之一:
::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''
在匹配第一个字符串时我会得到这个空?
我的第二个问题是,有没有更简单的方法来编写这个正则表达式?这两个字符串非常相似,除了有时我有这个额外的::WORD5
我的最后一个问题是:大多数时候我之间只有一个词,::
所以这就是为什么\w+
就足够了,但有时我可以得到诸如此类的东西2-WORD2
......3-2-WORD2
出现了这个-
。如何将其添加到\w+
?