Учитывая строку [2v2] race=[TPvZP] map=[Monlyth Ridge] players=[player 1(T)(w), player 2(P)(L) vs player3(Z)(W), player4(P)(W)] Length=[00-10-06]
,
~ ((\w*) \s*=\s*)? \[(.*?)\] ~ msx
будет производить следующее:
"" => 2v2
race => TPvZP
map => Monlyth Ridge
players => player 1(T)(w), player 2(P)(L) vs player3(Z)(W), player4(P)(W)
Length => 00-10-06
, тогда применение ~ (.*?) \( (\w) \) \( (\w) \) \s* ,? \s* (vs)? ~ msx
к players
должно создать что-то вроде этого:
[2] => Array
(
[0] => T
[1] => P
[2] => Z
[3] => P
)
[3] => Array
(
[0] => w
[1] => L
[2] => W
[3] => W
)
этого достаточно для создания желаемой выходной строки.