Я не уверен, что мой мозг изношен или я просто слишком об этом думаю.Следующий код взят из 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
вернул ноль .Я знаю, что одним из способов было бы бросить \
перед *
, чтобы заставить регулярное выражение явно искать символ *
, но я уверен, что это не то, что они подразумевали.