Оператор регулярного выражения Ruby (= ~) возвращает объект, который отвечает: []. Значения 0 и 1 относятся к соответствующей строке и первой группе (часть в скобках).
Так, например, если тестируемые строки были:
"test/test_sample.rb"
"lib/sample.rb"
Тогда первое выражение (/test/test_.*.rb/) будет соответствовать «test / test_sample.rb», а второе выражение (/lib/(.*).rb/) будет соответствовать «sample». Вы можете увидеть это в консоли:
> /test\/test_.*\.rb/ =~ "test/test_sample.rb"
# => 0
> $~[0]
# => "test/test_sample.rb"
> /lib\/(.*)\.rb/ =~ "lib/sample.rb"
# => 0
> $~[0]
# => "lib/sample.rb"
> $~[1]
# => "sample"
md
означает MatchData
, который является классом объекта, который Ruby использует для возврата результата соответствия регулярному выражению.