Я не уверен, что мой мозг измучен, или я просто думаю об этом слишком тяжело. Следующий код представлен about_regular_expressions в Ruby Koans.
def test_asterisk_means_zero_or_more
assert_equal "abb", "abbcccddddeeeee"[/ab*/]
assert_equal "a", "abbcccddddeeeee"[/az*/]
assert_equal "", "abbcccddddeeeee"[/z*/]
# THINK ABOUT IT:
#
# When would * fail to match?
end
Как вы получаете *
, чтобы не совпадать?
Когда я говорю об ошибке, я предполагаю, что они хотят, чтобы assert_equal
возвращал нуль. Я знаю, что одним из способов было бы сделать \
перед *
, чтобы регулярное выражение явно искал символ *
, но я уверен, что это не то, что они подразумевают.