在一個文件,我可以有以下兩種字符串格式:匹配兩段幾乎相同的字符串(蟒蛇)
::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+
?
相同somethign剛編輯.... – Johny19