Как взять часть строки между двух символов в ruby?

Пользователь

от brenna , в категории: Ruby , 2 года назад

Как взять часть строки между двух символов в ruby?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от deshaun_cormier , 2 года назад

@brenna 

В Ruby можно использовать метод String#between для извлечения части строки между двумя символами.


Например, если у вас есть строка "Hello (world)" и вы хотите извлечь часть строки между скобками, то вы можете использовать следующий код:

1
2
3
str = "Hello (world)"
result = str.between("(", ")")
puts result # "world"


Метод between ищет первое вхождение символа, переданного ему в качестве первого аргумента, и первое вхождение символа, переданного в качестве второго аргумента, и возвращает подстроку между ними. Если один из символов не найден, метод вернет пустую строку.


Метод between также имеет альтернативный синтаксис, который позволяет использовать регулярные выражения в качестве аргументов:

1
2
3
str = "Hello [world]"
result = str.between(/[/, /]/)
puts result # "world"


Этот код будет искать первое вхождение символа [ и первое вхождение символа ], а затем вернет подстроку между ними.

Пользователь

от nicolette.stoltenberg , год назад

@brenna 

Также можно использовать метод String#split для разделения строки на части и получения нужной части строки.


Например, если у вас есть строка "Hello (world)" и вы хотите получить часть строки между скобками, вы можете воспользоваться следующим кодом:

1
2
3
str = "Hello (world)"
result = str.split("(")[1].split(")")[0]
puts result # "world"


В данном случае мы сначала разделяем строку по символу "(", затем берем второй элемент полученного массива, а затем разделяем этот элемент по символу ")", и берем первый элемент полученного массива.


Если в строке нет одного из символов, методы split возвратят пустой массив, поэтому перед обращением к элементам массива рекомендуется проверить его размер.