@Alexto

Как удалить все символы, кроме последних?

Здравствуйте, мануала по регуляркам полно, но ответа не нашёл

ИСХОДНАЯ СТРОКА
blokupravlenijaimmobilajzeromalfaromeo14614i199838930-1

ЗАДАЧА
1. удалить все знаки кроме пяти последних, чтобы получилось "930-1"
2. удалить все знаки кроме пяти последних после последнего дефиса "38930"

Заранее спасибо!
  • Вопрос задан
  • 2425 просмотров
Решения вопроса 1
Gorily
@Gorily
удалить все знаки кроме пяти последних, чтобы получилось "930-1"

Решение: [a-zA-Z0-9-]{5}$
Рабочий пример: regexr.com/3spqe.
Находим перед концом строки 5 символов, можете добавить нужные символы.

удалить все знаки кроме пяти последних после последнего дефиса "38930"

Решение #1: (?<last>[a-zA-Z0-9-]{5})-(.*?)$
Рабочий пример: regexr.com/3spqb. Наведите на найденный фрагмент, чтобы увидеть содержимое первой группы.
Находим тире перед концом строки и забираем 5 символов до. Они в группе #1 или по имени "last".
5b53185433df0151116339.pngРешение #2: [^]{5}(?=-(.*?)$)
Рабочий пример: regexr.com/3spsa
Тут использована опережающая проверка.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
у тебя чОткое второе условие с примером не от него

для расширения сознания используй совет: "не в одно действие", и даже не все действия должны быть регекспами

пиши, что делаешь и что не получается
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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