Метод на клас низ: tr(from_string, to_string) =› нов_низ

В рамките на Ruby String Class има метод, който може да се използва за намиране на определен от потребителя знак или набор от знаци. Същият този метод след това замества знака или знаците, ако бъдат намерени, с друг набор, зададен от потребителя, и връща резултата като нов низ. Това е особено полезно, когато трябва да замените или да се отървете от определени знаци от низ. Като се има предвид това, той ще се отърве от всички екземпляри на знаците, посочени от съответния низ.

Например, ако някой има низ, изречение = „Момчето не учи забавно?“ и използва този метод върху него, за да се опита да премахне думата „Момче“ от него, ще се получи следният низ „ is' ученето е забавно?“ Този нов низ е резултат от кода, премахващ всички екземпляри на знаците „B“, „o“ и „y“ или „Boy“, което е това, което потребителят предава в параметъра from_string на метода. След това методът замества всички екземпляри на тези знаци с това, което потребителят е предал в параметъра to_string, „“ или нищо, и в крайна сметка ги премахва, както е показано по-долу:

Когато прилагате този метод към низ, е важно да знаете, че Ruby ще разпознае „B“ и „b“ като различни знаци, така че е важно да бъдете внимателни, когато прилагате този метод. Пример за такива нежелани резултати е показан по-долу:

Тъй като потребителят предаде низа „boy “ в параметъра from_string, кодът премахна всички случаи на „b”, „o”, „y” и „ ” от променливата на низа, изречението. При това кодът върна „Bisn’tlearningfun“ като нов низ, съхранен в променливата new_sentence. Кодът не премахна „B“, тъй като е главна буква b, а не малка и следователно се разпознава като различен знак.

Regexp

Понякога наричан регулярен израз или рационален израз, Regexp е вграден Ruby клас, който се използва за съхраняване на различни изрази, които описват съдържанието на низ. Те могат да се използват за тестване дали даден низ съдържа даден набор от знаци/модели или за извличане на частите от низ, които съответстват на техния съхранен израз. Когато се комбинират с предишния метод, двата могат да се използват за анализиране на низ и премахване на нежелани елементи. Един такъв пример за Regexp, използван в унисон с предишния метод, е показан по-долу:

Regexp, използван по-горе, е a-z. При нормални обстоятелства този израз би казал на метода tr(from_string, to_string) да премахне всички знаци, които съответстват на Regexp, a-z, или всички малки букви от буквата a до буквата z. Като се има предвид това, тъй като символът ^ е поставен пред Regexp, той казва на кода, че класът е обърнат. Чрез обръщане на класа, ^ казва на метода да търси всеки знак, освен тези, посочени в Regexp, a-z. В резултат на това кодът премахва „B“, всички интервали и всички препинателни знаци, тъй като тези знаци не са включени в Regexp. Друг пример за този регулярен израз и метода tr е показан по-долу:

В този пример се добавя интервал в края на регулярния израз и по този начин указва на метода да не премахва празни символи/интервали от низа. Полученият низ от тяхната комбинирана употреба е „oy isn't learning fun“. Подобно на предишния пример, методът е премахнал всички препинателни знаци като "?" и единичния цитат от думата „не е“. Такава комбинация би била особено полезна, когато се работи с потребителски вход или файлове, които съдържат нежелани знаци.