Regex для преобразования URL в две части - PullRequest
0 голосов
/ 14 июня 2019

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

Возможны ли две части с помощью Regex?

СУЩЕСТВУЮЩИХ

https://mybucketname.s3 -eu-west-1.amazonaws.com / myfilename.zip

ТРЕБУЕТСЯ

s3: //mybucketname/myfilename.zip

Средний URL-адрес S3 может измениться, поэтому для него может потребоваться подстановочный знак (пример URL: s3-eu-west-2.amazonaws.com, s3-us-west-1.amazonaws.com)

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

Вы можете использовать регулярные выражения, как показано ниже:

const url = 'https://mybucketname.s3-eu-west-1.amazonaws.com/myfilename.zip'

const match = url.match(/https:\/\/(.+)\.([a-z][0-9]).+\.amazonaws\.com\/(.+)/)


const result = match[2] + '://' + match[1] + '/' + match[3]

console.log(result)

Возможно, вам придется отрегулировать это в зависимости от того, как изменяется вход. Я предполагаю, что бит s3 - это всегда буква, за которой следует цифра.

0 голосов
/ 14 июня 2019

Вы можете проанализировать его как URL и извлечь нужные данные:

const url = new URL('https://mybucketname.s3-eu-west-1.amazonaws.com/myfilename.zip')

const protocol = url.host.split('.')[1].split('-')[0]
const subdomain = url.host.split('.')[0]
const path = url.pathname
const result = protocol + '://' + subdomain + path

console.log(result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...