Я очень новичок в регулярных выражениях. И я пытаюсь использовать регулярное выражение, чтобы превратить номер кредитной карты, который будет частью разговора, во что-то вроде 492900 ******2222* 1001 *
Поскольку это может происходить из любого разговора, он может содержать строку рядом с ним или может иметь несовместимый формат, поэтому по существу все нижеприведенное должно быть отформатировано в приведенном выше примере:
- привет, мой номер: 492900001111222
- число: 4929000011112222ok?
- 4929 0000 1111 2222
- 4929-0000-1111-2222
Это должно быть регулярное выражение, которое извлекаетгруппа захвата, которую я затем смогу использовать MatchEvaluator, чтобы превратить все цифры (исключая не цифры), которые не являются первыми 6 и последними 4, в *
Я видел много примеров здесь по переполнению стекадля PHP и JS, но ни один, который не помогает мне решить эту проблему.
Будем благодарны за любые рекомендации
ОБНОВЛЕНИЕ
Мне нужно расширить существующийяПлементация, которая использует MatchEvaluator для маскировки каждого символа, который не является первым 6 или последним 4, и в идеале я не хочу менять MatchEvaluator и просто сделать гибкую маскировку на основе регулярного выражения, см. это для примера https://dotnetfiddle.net/J2LCo0
ОБНОВЛЕНИЕ 2
@Matt.G и ответы @CAustin действительно решают то, о чем я просил, но я сталкиваюсь с другим барьером, где я не могу быть настолько строгим.Конечная захваченная группа должна учитывать только цифры и, следовательно, поддерживать формат входного текста.Так, например:
Если в некоторых номерах моей карты указан номер 99 9988 8877776666, результат оценки должен составить 99 9988 ****** 666666
ИЛИ номер моей карты 9999-8888-7777-6666 должно выдать 9999-88 ** - **** - 6666.
Возможно ли это?
Изменен список для включения элементов, которые находятся в моих модульных тестах https://dotnetfiddle.net/tU6mxQ