@rockwell323

Как вырезать строку после второго дефиса с помощью regexp?

Есть строка https://example.com/324-4-lkksdf или
https://example.com/23234-0-%20sfsdf%27dsfkjjksdj%27
, я хочу получить часть строки, что после второго дефиса, то есть lkksdf или %20sfsdf%27dsfkjjksdj%27 соответственно. Как мне это сделать c помощью regexp?

PS
Я не эксперт в regexp, данный паттерн не помогает (?<=\d-).*, обрезает строку до первого дефиса с ним включительно, остается 4-lkksdf или 0-%20sfsdf%27dsfkjjksdj%27 немного не тот результат, что нужен.
  • Вопрос задан
  • 128 просмотров
Решения вопроса 4
Seasle
@Seasle Куратор тега JavaScript
const getSubstringAfter = (string, char, iterations) => {
	let pos = -1;
	for (let i = 0; i < iterations; i++) {
		pos = string.indexOf(char, pos + 1);
	}

	return string.slice(pos + 1);
};
getSubstringAfter(str, '-', 2);

или
str.split('-').slice(2).join('-');
или
str.replace(/([^-]+\-){2}/, '');
или
str.match(/(?:[^-]+\-){2}(.*)/)?.[1]
Ответ написан
Комментировать
@goshaLoonny
let regExp = /(?<=(\d+-){2}).*/;
let str = 'https://example.com/324-4-lkksdf';
let str2 = 'https://example.com/23234-0-%20sfsdf%27dsfkjjksdj%27';

console.log(str.match(regExp)[0]);
console.log(str2.match(regExp)[0]);
Ответ написан
Комментировать
karabanov
@karabanov
Системный администратор
Ответ написан
Комментировать
@WAR_VIK
На мой взгляд самый простой способ решения:
let res = str.split('-').pop();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы