regular_expression = re.compile(r'SKIPPED|PASSED|FAILED')
regular_expression.search(line)
выше регулярное выражение будет выбраны все строки, которые имеют один из слов (пропускаются | ПРОШЛО | FAILED)Python: Как соответствовать только одно из слов, используя регулярное выражение
Проблема заключается в: Он выбирает нижняя строка также
TYPE TOTAL SKIPPED PASSED FAILED
---- ----- ------- ------ ------
Module 21 0 19 3
Так их способ, чтобы он выбирал линию только в том случае, если присутствует одно из трех слов?
Это действительно проще без регулярных выражений. Посмотрите на ['^ (? :(! ПРОПУСКАЕТСЯ | ПРОШЕДШИЕ | НЕИСПРАВНОСТИ).) * (?: ПРОПУСТИТЬ | ПРОШЕДШИЕ | НЕИСПРАВНО) (?!. * (?: ПРОПУСТИТЬ | ПРОШЕДШИЕ | НЕИСПРАВНО))'] (https://regex101.com/r/oo2kOi/1). –
@ WiktorStribiżew: Умный гольф с этим там. Получает +1 от меня. –
@SebastianLenartowicz: * lookahead * в выражении является частью так называемого [* tempered greedy token *] (http://www.rexegg.com/regex-quantifiers.html#tempered_greed). –