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

1. Дан номер карты:
1234 5678 9999 0000
Как лучше всего его привести к виду:
**** ***** ***** 0000
Используя только лишь регулярные выражения?

2. Дана случайная строка, например:
ABC123PPE553QQ999
Необходимо заменить первые пять цифр, например:
ABC***PPE**3QQ999
Я правильно понимаю, что это сделать с помощью регулярных выражений невозможно?
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ответы на вопрос 1
Moskus
@Moskus
Почему это второе - нельзя?
Ищем
^([^\d]*?)\d([^\d]*?)\d([^\d]*?)\d([^\d]*?)\d([^\d]*?)\d(.*)

заменяем на
$1*$2*$3*$4*$5*$6
В первые пять capture group кладется либо ничего, либо любое число не-цифр. В последнюю - остаток строки после последней цифры. Предполагается, что в строке всегда есть не менее пяти цифр.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
18 апр. 2024, в 01:12
150000 руб./за проект
18 апр. 2024, в 00:10
50000 руб./за проект