VicTHOR
@VicTHOR
(╮°-°)╮┳━━┳ ( ╯°□°)╯ ┻━━┻

Как выкинуть лишнюю часть?

Выражение
/home/bitrix/www/upload/1/m/13klm1/2SD1825-B@_/@белый
/home/bitrix/www/upload/1/m/Aasds/182PF701F359_39239@_/ФО_ТО

Нужно достать
2SD1825-B
182PF701F359_39239
Я сделал так
(?<=^\/home\/bitrix\/www\/upload\/1\/m\/).*\/
т.е. убираю повторы, затем дохожу до последнего слэша.. если поставить в конце .*?\/, ленивый поиск дойдет до первого слэша.. Думаю надо эти значения с собаками достать (2SD1825-B@_), именно после первого слэша после убирания повторов, а потом собаки убрать, а то если до собак идти, они могут и раньше быть, теоретически..
Не знаю как дальше, по-разному пробовал, но, к сожалению, конструкция (?<!.*?\/)ругается на звезду с вопросом, т.е. результат ленивого поиска так не убрать:(
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
JRazor
@JRazor
Senior StarkOverFlow Programmer
Вопрос не до конца понятен. Достать то их без собак легко (https://regex101.com/r/3Q30oe/1), а вот фраза "они теоретически могут быть и раньше" - это уже надо смотреть, есть ли такие случаи, как они выражаются и менять regex под них.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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