Я пытаюсь отфильтровать путь в первой группе захвата.Javascript Regex: Проложить путь до последнего появления в группе захвата
В настоящее время первая группа захвата извлекает путь, включая его родительские пути.
Хотя это поведение совершенно нормально, я не хочу, чтобы сам путь включался. Группа захвата должна извлекать только родительские пути, если они есть.
Группа захвата 2 должна оставаться как есть. (См красные цифры в картинке ниже)
Regex:
/^(?:music|pictures)\/tom((?:\/((?:[\w-]+(?:[ ]+[\w-]+)*)))*)$/gm
матч против:
music/tom/foldername
music/tom/folder name
music/tom/foldername/folder2
Ожидаемые результаты:
[MATCH 1] Я ожидаю, что первый матч (зеленый), чтобы быть пустым, так как он не имеет родителей, ни порожденных
[MATCH 2] то же, что и [MATCH 1]
[MATCH 3] Я ожидаю, что первый матч (зеленый) - только содержат родителей
Regex Демы: https://regex101.com/r/yN2kK2/1
Технически я мог бы просто сохранить свое регулярное выражение и использовать Javascript для ожидаемого поведения:
str.substr(str.lastIndexOf('/'))
Однако , Я ценю, если бы это можно было заархивировать с помощью регулярное выражение.
что-то вроде ** ['this'] (https://regex101.com/r/yN2kK2/2) ** – rock321987