別の正規表現を提案したいと思いますが、通常.*
は良いことではありません.何らかの理由で入力の変更が黙って失敗し、間違った誤解を招く結果を返す場合. したがって、代わりに、すべてを一致させて、期待する形式であるかどうかを確認してください。
私の正規表現に従ってください。ただし、OPが要求したものとはわずかに異なる出力があります。
テスト文字列:[#8760e4 4.3MiB/40MiB(10%) CN:2 DL:4.9MiB ETA:7s]
/\[(#\w+) (\d+.?\d*\w+)/(\d+.?\d*\w+)\((\d+%)\) CN:(\d+) DL:(\d+.?\d*\w+) ETA:(\w+)\]/

分解された正規表現
regex part matched part captured part
-------------------------------------------------
\[ [
(#\w+) #8760e4 #8760e4
\s
(\d+.?\d*\w+) 4.3MiB 4.3MiB
/ /
(\d+.?\d*\w+) 40MiB 40MiB
\((\d+%)\) (10%) 10%
\s
CN:(\d+) CN:2 2
\s
DL:(\d+.?\d*\w+) DL:4.9MiB 4.9MiB
\s
ETA:(\w+) ETA:7s 7s
\] ]
出力:
["#8760e4", "4.3MiB", "40MiB", "10%", "2", "4.9MiB", "7s"]