Это объяснение того, что делают ваши 2 примера. Хотя это не совсем ответ, это немного долго, чтобы вписаться в комментарий.
=~
возвращает позицию, в которой найдено совпадение, или nil
, если совпадение не найдено.
В вашем первом примере 'http://ale.it' соответствует URI::regexp
, начиная с позиции 0, так что вы получите 0.nil?
, который равен false, преобразован в строку "false"
gsub
во втором примере принимает 2 параметра, шаблон и строку замены и заменяет все совпадения шаблона заменой.
'\ 0' не соответствует URI::regexp
, поэтому ('\0' =~ URI::regexp).nil?
имеет значение true, а при to_s
применяется строка «true».
"http://ale.it" соответствует /http[s]?:\/\/[^\s]+/
, поэтому заменяется на" true ".
Вам придется расширить свой вопрос, чтобы объяснить, чего вы пытаетесь достичь.