Я крайне неопытен в регулярных выражениях, поэтому, пожалуйста, потерпите меня. Моя программа проверяет единицы измерения на входе пользователя и преобразует их из метрических в британские или наоборот. Вот фрагмент моего заявления о ситуации:
when /ltr|ltrs|liter|liters|litre|litres/
puts "#{int} liter(s) is equal to #{calc(int, 3.78541)} gallon(s), #{rem(int, 3.78541, 4)} quart(s)!"
when /gal|gals|gallon|gallons/
puts "#{int} gallon(s) is equal to #{calc(int, 0.264172)} liter(s), #{rem(int, 0.264172, 1000)} milliliter(s)!"
Я хотел бы изменить первый when
, чтобы он также включал /l/
. Чтобы предотвратить его смешивание с присутствующим l
в других when
условиях (как в gallon
), я хотел использовать что-то вроде /\bl\b/
. Проблема в том, что это делает программу неспособной распознать l
, если она находится рядом с числом, как, например, в 20L
. Есть ли способ сделать границу слова, которая игнорирует соседние числа?