@krlljs

Как записать регулярное выражение которое должно начинаться с определенных символов, но их не включать?

У меня есть три строки:
https://yandex.ru/maps/org/dom_ru/131719887381/
https://yandex.ru/maps/org/dom_ru_interzet/1099188223/
https://yandex.ru/maps/org/domashniy_internet_dom_ru_v_sankt_peterburge/1291097722/

Я написал регулярку которая вроде как работает:
/\/dom_ru(?:|_interzet)\/(\d+)/g
var reggg = /\/dom_ru(?:|_interzet)\/(\d+)/g;
'maps/org/dom_ru/131719887381/'.match(reggg) //=> ['dom_ru/131719887381/']
'maps/org/dom_ru_interzet/1099188223/'.match(reggg) //=> ['dom_ru_interzet/1099188223/']
'maps/org/domashniy_int_dom_ru_v_sp/1291097722/'.match(reggg) //=>null

Мне же необходимо из url циферное значение, все что идет следом за /dom_ru/ или /dom_ru_interzet/, но не включает их.

Пока что накостылял через условие и двойной вызов match:
var str = ["/maps/org/dom_ru/1266454637/";
if(str.match(/\/dom_ru(?:|_interzet)\/(\d+)/g)!==null) {
  console.log(str.match(/\/dom_ru(?:|_interzet)\/(\d+)/)[1]) //1266454637
}

Все это работает через группы, не через фулмачю. Как сделать через фулматч? Без проверки? Как укоротить?

песочница тут https://regex101.com/r/1zuL2U/1/
  • Вопрос задан
  • 157 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект