Формат регулярных выражений для XXXXXXXXX , XX-XXXXXXX , XXX-XX-XXXX ex (123456789, 123-12-1234, 12-134567))
Всем Привет,
Не могли бы вы предоставить регулярное выражение для приведенного ниже.
В приложении пользователь предоставит описание, Если описание содержит SSN или EIN ('049-90-1935',149901935,14-9901935), следует заменить на "xxxxxxxx".
Ниже приведены допустимые форматы для замены.
049-90-1935
ANR049-90-1935
049-90-1935BIH
049901935
14-9901935BIN
Недопустимый формат:
0141234567897 недействителен. Не следует заменять. Последовательность длиннее 9 цифр.
0141234 недействительно. Не следует заменять. Эта последовательность короче 9 цифр.
123456789abc123456789 недействительным
(1)The data consists of 9 digits only. (2)The data is delimited by either a SPACE or non-digit character. (3)Embedded space(s) separating digits should be ignored. (4)For SSNs, the acceptable formats are a.xxx-xx-xxxx or b.xxxxxxxxx where x represents a digit (number from 0 thru 9) (5)For EINs, the acceptable formats are a.xx-xxxxxxx or b.xxxxxxxxx where x represents a digit (number from 0 thru 9)
Что я уже пробовал:
I tried with the following regular expression. <pre>string ssnPattern = @"[^0-9](?<grpA>\d{9}) |[^0-9](?<grpB>\d{3}-\d{2}-\d{4}) | [^0-9](?<grpC>\d{2}-\d{7}) "; var matches = Regex.Matches(description, ssnPattern).Cast<Match>().Select(m => m).ToList(); if (matches != null && matches.Count > 0) { redactionText = Regex.Replace(content, ssnPattern, m => { string val = ""; if (m.Groups["grpA"] != null && m.Groups["grpA"].Value != "") { val = m.Value.Replace(m.Groups["grpA"].Value, req.ReplacementText); matchingItems.Add(m.Groups["grpA"].Value); } if (m.Groups["grpB"] != null && m.Groups["grpB"].Value != "") { val = m.Value.Replace(m.Groups["grpB"].Value, req.ReplacementText); matchingItems.Add(m.Groups["grpB"].Value); } if (m.Groups["grpC"] != null && m.Groups["grpC"].Value != "") { val = m.Value.Replace(m.Groups["grpC"].Value, req.ReplacementText); matchingItems.Add(m.Groups["grpC"].Value); } return val; }); }
Unable to resolve all the scenarios. Can anyone please provide a solution.