我有这种模式
PlayerName<UID><STEAM_ID><TEAM>
^(.+?)<(.+?)><(.+?)><(.+?)>$
这看起来很容易解析(我需要具有saparately PlayerName,UID,STEAM_ID和TEAM)。但是playerName可能有“&lt;”和“&gt;”进去。例如
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')]
现在我可以撤回这些变量。但是有更正确的方式来获得我需要的东西吗?
答案 0 :(得分:1)
摆脱第一个?
。它是一个修饰符,意思是“匹配尽可能少的字符”。您希望尽可能匹配默认行为。
^(.+)<(.+?)><(.+?)><(.+?)>$