Ruby Регулярное выражение для получения процента от конкретной строки - PullRequest
0 голосов
/ 09 мая 2018

У меня есть следующий вывод:

Name                              Stmts   Miss  Cover   Missing
---------------------------------------------------------------
src/global_information.py             8      1    88%   6
src/settings.py                      38      0   100%
src/storage_backends.py               4      4     0%   1-5
src/urls.py                           8      0   100%
users/admin.py                        1      0   100%
users/apps.py                         3      3     0%   1-5
users/forms.py                        5      0   100%
users/models.py                       1      0   100%
users/tests/tests_views_urls.py       5      0   100%
users/urls.py                         5      0   100%
users/views.py                        1      1     0%   1
---------------------------------------------------------------
TOTAL                                79      9    89%

Мне нужно получить ОБЩИЙ процент, который составляет 89%.Я пробую следующие два регулярных выражения:

TOTAL\s+\d+\s+\d+\s+\d+\%

и

(?<=TOTAL\s).*

Я могу получить правильную строку, но не уверен, как извлечь ее процентную часть.Это должно быть достигнуто в регулярном выражении, потому что у меня нет доступа к любому инструменту

Спасибо

Ответы [ 3 ]

0 голосов
/ 09 мая 2018

Вы можете использовать регулярные выражения, как это:

TOTAL.*?(\d+)%

Рабочая демоверсия

Или, если вы хотите захватить %, тогда

TOTAL.*?(\d+%)

Затем захватить содержимое из группы захвата $1

0 голосов
/ 09 мая 2018
str=<<_
Name                              Stmts   Miss  Cover   Missing
---------------------------------------------------------------
src/global_information.py             8      1    88%   6
src/settings.py                      38      0   100%
src/storage_backends.py               4      4     0%   1-5
src/urls.py                           8      0   100%
users/admin.py                        1      0   100%
users/apps.py                         3      3     0%   1-5
users/forms.py                        5      0   100%
users/models.py                       1      0   100%
users/tests/tests_views_urls.py       5      0   100%
users/urls.py                         5      0   100%
users/views.py                        1      1     0%   1
---------------------------------------------------------------
TOTAL                                79      9    89%
_

str[/^TOTAL.*?\K\d+%/] #=> "89%

\K означает отбросить все, что соответствует. Нужен не жадный модификатор ? в .*?. Без этого совпадение до \K будет заканчиваться последней последней цифрой в общем проценте (здесь "8" в "89%", "3" в "1234%").

0 голосов
/ 09 мая 2018

awk '/TOTAL/{ print $4}' <INPUT_FILE>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...