Я хочу получить несколько писем, используя регулярные выражения - PullRequest
0 голосов
/ 16 мая 2019

Как я уже сказал в заголовке, я хочу получить несколько писем, используя «Регулярные выражения».Но я не знаю, как его получить.

re.findall("\d*\.?\d+[^Successful 50/50s]", a)

'Защита \ nОчистить листы \ n53 \ nПропущенные цели \ n118 \ nTackles \ n186 \ nУстановка успеха% \ n75% \nПоследний человек справляется с \ n2 \ nБлокированными выстрелами \ n24 \ nИнтерцепции \ n151 \ nОчистки \ n805 \ nЗапуск головы \ n380 \ nОтклонения в автономном режиме \ n3 \ nВосстановления \ n666 \ nДуэли выиграны \ n435 \ nДуэли потеряны \ n330 \ 50SU\ nВоздушные воздушные сражения \ n206 \ nВоздушные воздушные сражения \ n193 \ nСобственные цели \ n1 \ nОшибки, ведущие к цели \ n1Командная игра \ nAssists \ n2 \ nПроходы \ n7,979 \ nПроходы за матч \ n56.19 \ nБольшие шансы созданы \ n3 \nПересекает \ n48 \ nТочность кросса% \ n25% \ nЧерез шары \ n10 \ nТочные длинные шарики \ n936Дисциплинарные \ nЖелтые карты \ n13 \ nКрасные карты \ n0 \ nФолы \ n48 \ nОбъекты \ n2Attack \ nGoals \ n6 \ nГоловые цели \ n4с правой ногой \ n1 \ nЦели с левой ногой \ n1 \ nHit изделия из дерева \ n3 '

Я хочу получить только число, включая поплавки и%, но исключая «Успешные 50/50 с».Но также хочу остаться на месте тысячи, как 7 979.

1 Ответ

0 голосов
/ 16 мая 2019

Вы можете использовать это регулярное выражение, которое будет соответствовать всем числам, кроме того, которому предшествуют ваши номера, после которого следует косая черта, например 50/50

(?<!/)\d*(?:,\d+)*\.?\d+\b(?!/)

Regex Demo

Ваш обновленный код Python,

import re

s = '''Defence\nClean sheets\n53\nGoals conceded\n118\nTackles\n186\nTackle success %\n75%\nLast man tackles\n2\nBlocked shots\n24\nInterceptions\n151\nClearances\n805\nHeaded Clearance\n380\nClearances off line\n3\nRecoveries\n666\nDuels won\n435\nDuels lost\n330\nSuccessful 50/50s\n25\nAerial battles won\n206\nAerial battles lost\n193\nOwn goals\n1\nErrors leading to goal\n1',
 'Team Play\nAssists\n2\nPasses\n7,979\nPasses per match\n56.19\nBig chances created\n3\nCrosses\n48\nCross accuracy %\n25%\nThrough balls\n10\nAccurate long balls\n936',
 'Discipline\nYellow cards\n13\nRed cards\n0\nFouls\n48\nOffsides\n2',
 'Attack\nGoals\n6\nHeaded goals\n4\nGoals with right foot\n1\nGoals with left foot\n1\nHit woodwork\n3'''

print(re.findall(r'(?<!/)\d*(?:,\d+)*\.?\d+\b(?!/)', s))

Печать всех чисел, кроме этих 50 / 50,

['53', '118', '186', '75', '2', '24', '151', '805', '380', '3', '666', '435', '330', '25', '206', '193', '1', '1', '2', '7,979', '56.19', '3', '48', '25', '10', '936', '13', '0', '48', '2', '6', '4', '1', '1', '3']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...