Захватите все вещи !!
^(\d+)\s+(\d+|\-\-)\s+(\d+\%)\s+(.*)\s+(\d+)\s+(\$\d+(?:.\d+)?[Mk])\s+(\$\d+(?:.\d+)?[Mk])\s+(\$\d+(?:.\d+)?[Mk])\s+(\d+)$
Объяснил:
^ <- Start of the line
(\d+)\s+ <- Numbers (captured) followed by as many spaces as you want
(\d+|\-\-)\s+ <- Numbers [or "--"] (captured) followed by as many spaces as you want
(\d+\%)\s+ <- Numbers [with '%'] (captured) followed by as many spaces as you want
(.*)\s+ <- Anything you can match [don't be greedy] (captured) followed by as many spaces as you want
(\d+)\s+ <- Numbers (captured) followed by as many spaces as you want
(\$\d+(?:.\d+)?[Mk])\s+ <- "$" and Numbers [with floating point] and "M or k" (captured) followed by as many spaces as you want
(\$\d+(?:.\d+)?[Mk])\s+ <- "$" and Numbers [with floating point] and "M or k" (captured) followed by as many spaces as you want
(\$\d+(?:.\d+)?[Mk])\s+ <- "$" and Numbers [with floating point] and "M or k" (captured) followed by as many spaces as you want
(\d+) <- Numbers (captured)
$ <- End of the line
Итак, если серьезно, то, что я сделал, я немного обманул и поймалвсе (как я думаю, что вы сделаете в конце концов), чтобы получить представление о захвате названия.
В не жадном регулярном выражении (.*)
[или (.*?)
, если вы хотите вызвать "несгибаемость""] захватит наименьшее количество возможных символов, и конец регулярного выражения пытается захватить все остальное.
Ваше регулярное выражение заканчивает тем, что захватывает только заголовок (единственное, что осталось).
Что выможно использовать реальный прогноз и делать утверждения.
Ресурсы: