Как заменить www из URL-адреса в ruby?

Я хочу заменить www с этого URL "https://www.cmnetwork.co/courses/3684/redirect" с newlife.

Я знаю, что с помощью split мы можем это сделать. Есть ли какой-нибудь стандартный способ сделать это?

Новый сгенерированный URL должен быть: "https://newlife.cmnetwork.co/courses/3684/redirect"

Задавая такой вопрос, мы хотим увидеть пример того, что вы пробовали. Без этого похоже, что вы не пробовали. См. «Как спросить» и ссылки внизу страницы для получения дополнительной информации.

the Tin Man 31.05.2019 01:32
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
65
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

попробуйте следующий код, чтобы заменить www из url, например.

url = "www.google.com"
url.gsub!('www.', 'app.')
url = "www.foo_www_bar.com"? Это очень опасный совершенно неправильный подход.
Aleksei Matiushkin 30.05.2019 12:04

@AlekseiMatiushkin проверьте мой обновленный ответ. Надеюсь, что это работает и сохранить.

Bodh1004 30.05.2019 12:10
url = "www.foo_www.bar.com"?
Aleksei Matiushkin 30.05.2019 12:10
gsub в этом случае опасен, так как он заменит каждое вхождение www., найденное в строке. /^www\./ было бы умнее, но gsub все равно было бы излишеством.
the Tin Man 31.05.2019 01:59
Ответ принят как подходящий

Я бы сказал, что если вы хотите манипулировать URL-адресом, вам следует использовать правильный URI-класс и не использовать методы в строке URL-адреса.

uri = URI('https://www.cmnetwork.co/courses/3684/redirect')
uri.host = 'newlife.cmnetwork.co'

uri.to_s 
#=> "https://newlife.cmnetwork.co/courses/3684/redirect"

Это может показаться излишним для этого очень простого примера, но это IMO лучшая практика.

Определенно лучше использовать аксессуары.

the Tin Man 31.05.2019 01:33

Используя sub метод ruby, мы можем заменить подстроку.

url = "https://www.cmnetwork.co/courses/3684/redirect"
url = url.sub('www.','newlife.')

В ОП это может работать нормально, но я бы не стал этого делать в реальной жизни, особенно если бы входящие URL-адреса были неизвестны. Если бы URL-адрес выглядел как «mywww.foo.com», это сломало бы его. Либо используйте решение Спикермана, либо примените дополнительную логику. Кроме того, sub использует шаблон, поэтому /^www\./ будет умнее.

the Tin Man 31.05.2019 01:57

Другие вопросы по теме