Regex не может иметь разницу больше 3 ⇐ Python
-
Anonymous
Regex не может иметь разницу больше 3
У меня есть проблема.
Рассмотрим игру, в которой в мешке находится равное количество синих и красных шаров. Цель состоит в том, чтобы случайным образом вытягивать из мешка по одному шарику и помещать его на весы с двумя чашками. В одну кастрюлю поместите красные шарики, а в другую — синие. Игра проиграна, если в любой момент на одной из сковородок окажется на 3 шара больше, чем на другой. Игра выиграна, когда все шары будут помещены на весы.
Цель — написать регулярное выражение, проверяющее, выиграна или проиграна игра.
Для тестирования я использовал Python.
Я сделал это:
^(?:(?:R{0,2}B){0,3}R{0,2})$ но это не работает, если количество R или B больше 3. Например, RBRBRBRB должно работать, но с моим выражением — нет. RBBRRB работает нормально.
импортировать повторно # Регулярное выражение для проверки того, выиграл ли игрок игру регулярное выражение = re.compile(r'^(?:(?:V{0,2}A){0,3}V{0,2})$') # Примеры выигрышных последовательностей шаров win_sequences = ['AVAVAVAV', 'AVAVAV', 'AVAVVA'] # Примеры последовательностей проигрыша мяча loss_sequences = ['AAA', 'VVV', 'AVAVAAA'] # Проверка выигрышных последовательностей для последовательности в win_sequences: если regex.match(последовательность): print(f'Последовательность «{sequence}» выигрывает игру.') еще: print(f'Последовательность «{sequence}» не выигрывает игру.') # Проверка проигрышных последовательностей для последовательности в loss_sequences: если regex.match(последовательность): print(f'Последовательность «{sequence}» выигрывает игру.') еще: print(f'Последовательность «{sequence}» не выигрывает игру.') Можете ли вы дать несколько советов и рассказать, что я могу сделать?
У меня есть проблема.
Рассмотрим игру, в которой в мешке находится равное количество синих и красных шаров. Цель состоит в том, чтобы случайным образом вытягивать из мешка по одному шарику и помещать его на весы с двумя чашками. В одну кастрюлю поместите красные шарики, а в другую — синие. Игра проиграна, если в любой момент на одной из сковородок окажется на 3 шара больше, чем на другой. Игра выиграна, когда все шары будут помещены на весы.
Цель — написать регулярное выражение, проверяющее, выиграна или проиграна игра.
Для тестирования я использовал Python.
Я сделал это:
^(?:(?:R{0,2}B){0,3}R{0,2})$ но это не работает, если количество R или B больше 3. Например, RBRBRBRB должно работать, но с моим выражением — нет. RBBRRB работает нормально.
импортировать повторно # Регулярное выражение для проверки того, выиграл ли игрок игру регулярное выражение = re.compile(r'^(?:(?:V{0,2}A){0,3}V{0,2})$') # Примеры выигрышных последовательностей шаров win_sequences = ['AVAVAVAV', 'AVAVAV', 'AVAVVA'] # Примеры последовательностей проигрыша мяча loss_sequences = ['AAA', 'VVV', 'AVAVAAA'] # Проверка выигрышных последовательностей для последовательности в win_sequences: если regex.match(последовательность): print(f'Последовательность «{sequence}» выигрывает игру.') еще: print(f'Последовательность «{sequence}» не выигрывает игру.') # Проверка проигрышных последовательностей для последовательности в loss_sequences: если regex.match(последовательность): print(f'Последовательность «{sequence}» выигрывает игру.') еще: print(f'Последовательность «{sequence}» не выигрывает игру.') Можете ли вы дать несколько советов и рассказать, что я могу сделать?