2012-08-31 77 views
1

我有這種模式如何爲這種情況編寫正則表達式?

PlayerName<UID><STEAM_ID><TEAM> 

^(.+?)<(.+?)><(.+?)><(.+?)>$ 

,這看起來好像很容易解析(我需要有saparately PlayerName,UID,STEAM_ID和TEAM)。但是playerName可能包含「<」和「>」。例如

SkOrPiOn <38> rus<1020><STEAM_0:0:985442350><Unassigned> 

我們得到這個

[('SkOrPiOn ', '38> rus<1020', 'STEAM_0:0:985442350', 'Unassigned')] 

,你可以看到,結果是錯誤的。

所有我可以做的,這是相反的字符串和正則表達式行話,讓這個

[('dengissanU', '053244589:0:0_MAETS', '0201', 'sur >83< nOiPrOkS')] 

現在我可以轉回這個變量。但是,有沒有更正確的方法來獲得我所需要的?

回答

1

擺脫第一個?。這是一個修飾符,意思是「儘可能少匹配字符」。你想要儘可能匹配的默認行爲。

^(.+)<(.+?)><(.+?)><(.+?)>$ 
+0

非常感謝! – Neka